我在某一份代码中,认定 i=1∏nimodpk=i=1∏n(imodp)modpk,并成功通过了本题。
实现:
pair<int,int>calc(int n,int p,int mod){
if(!n)
return {1,0};
int c=n/p,mul=qpow(fac[p-1],c,mod);
auto nxt=calc(c,p,mod);
mul=mul*fac[n-c*p]%mod*nxt.first%mod,c+=nxt.second;
return {mul,c};
}
Hack:
14 7 293475
3432