代码展示
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int p = 10000007;//余数
inline ll ksc(ll x,ll y){ // 快速乘 x*y
ll t=(ld)x/p*y;
ll res=(ull)x*y-(ull)t*p;
return (res+p)%p;
}
ll fast(ll di,ll zhi){ // 快速幂 di^zhi %p
ll res=1;
while(zhi>0){
if(zhi&1) res=ksc(res,di); // 替换快速乘
zhi>>=1;
di=ksc(di,di); // 替换快速乘
}
return res;
}