道具战
2025-08-15 09:55:27
发布于:浙江
- modint,用了可以自动取模,但常数巨大。
template <int mod>
class modint{
long long val;
public:
modint(){val = 0;}
modint(int tmp){val = (tmp % mod + mod) % mod;}
modint operator + (const modint b) const{return modint(val + b.val);}
modint operator += (const modint b){return (*this = modint(val + b.val));}
modint operator - (const modint b) const{return modint(val - b.val);}
modint operator -= (const modint b){return (*this = modint(val - b.val));}
modint operator * (const modint b) const{return modint(val * b.val);}
modint operator *= (const modint b){return (*this = modint(val * b.val));}
modint operator + (const int b) const{return modint(val + b % mod);}
modint operator += (const int b){return (*this = modint(val + b % mod));}
modint operator - (const int b) const{return modint(val - b % mod);}
modint operator -= (const int b){return (*this = modint(val - b % mod));}
modint operator * (const int b) const{return modint(val * (b % mod));}
modint operator *= (const int b){return (*this = modint(val * (b % mod)));}
friend istream &operator >> (istream &cin, modint &cur){
cin >> cur.val;
cur.val %= mod;
return cin;
}
friend ostream &operator << (ostream &cout, modint cur){
cout << cur.val;
return cout;
}
};
#define mint1 modint <1000000007>
#define mint2 modint <998244353>
全部评论 2
不过说句实话,我第一知道cincout可以这么重载
2025-08-15 来自 浙江
0逆天
2025-08-15 来自 浙江
0
摸摸摸
2025-08-15 来自 浙江
0帮我想想怎么优化常数
2025-08-15 来自 浙江
0开 O32025-08-15 来自 浙江
0fvv
2025-08-15 来自 浙江
0
有帮助,赞一个