快速乘 快速幂 输入输出挂模板
快速乘&&快速幂
ll qc(ll x,ll y,ll mod)
{
return (x*y-(ll)((long double)x/mod*y)*mod+mod)%mod;
}
ll qpow(ll x, ll y, ll m){
ll res = 1;
res %= m;
while (y){
if(y & 1){
res = qc(res, x, m);
}
y >>= 1;
x = qc(x, x, m);
}
return res % m;
}
输入挂
template <class T>
bool read(T & a){
a = 0;
int flag = 0;
char ch;
if((ch = getchar()) == '-'){
flag = 1;
}
else if(ch >= '0' && ch <= '9'){
a = a * 10 + ch - '0';
}
while ((ch = getchar()) >= '0' && ch <= '9'){
a = a * 10 + ch - '0';
}
if(flag)a = -a;
return true;
}
template <class T, class ... R>
bool read(T & a, R & ... b){
if(!read(a))return 0;
read(b...);
}
输出挂
template <class T>
bool out(T a){
if(a < 0)putchar('-');
if(a >= 10)out(a / 10);
putchar(a % 10 + '0');
return true;
}
template <class T, class ... R>
bool out(T a, R ... b){
if(!out(a))return 0;
out(b...);
}
本文来自博客园,作者:correct,转载请注明原文链接:https://www.cnblogs.com/correct/p/12862083.html

浙公网安备 33010602011771号