本人的快速幂代码如下
int qp(int x,int mi){
int ans=1;
int tem=x%mod;
while(mi){
if(mi&1){
ans*=tem;
ans%=mod;
}
tem*=tem;
tem%=mod;
mi>>=1;
}
return ans;
}
然后本人调用的时候如果这样写就会溢出
ans*=(qp(i,cnt)-1)%mod*(qp(i-1,mod-2))%mod;
如果这样写就不会
ans*=(qp(i%mod,cnt)-1)%mod*(qp(i%mod-1,mod-2))%mod;
这是为什么呢