原快速幂部分
ll qpow(ll a, ll b) {
ll res = 1;
while (b) {
if (b & 1) res = (res * a) % mod;
a = (a * a) % mod;
b = b >> 1;
}
return res;
}
新快速幂部分
ll qpow(ll a, ll b) {
ll res = 1;
a = a % mod;
while (b) {
if (b & 1) res = (res * a) % mod;
a = (a * a) % mod;
b = b >> 1;
}
return res;
}
因为带入函数a的范围是10^15,所以如果不事先取模会在第一次a=(a*a)%mod直接炸掉QAQ