现在来了新问题,如果n和m很大呢,
比如求C(n, m) % p , n<=1e18,m<=1e18,p<=1e5
看到没有,n和m这么大,但是p却很小,我们要利用这个p
上帝说要有光,于是便有了光。
卢卡斯说要有
C(n, m) % p = C(n / p, m / p) * C(n%p, m%p) % p
于是便有了大组合数有解。
代码如下:
LL Lucas(LL n, LL m, int p){
return m ? Lucas(n/p, m/p, p) * comb(n%p, m%p, p) % p : 1;
}