题目大意:发上来就过不了审核了……总之大意就是求C(n,m) mod 10007 m,n∈[1,2*10^8]
卢卡斯定理:C(n,m)=C(n%p,m%p)*C(n/p,m/p) mod p 要求p是质数
当中n%p可能会小于m%p 这样的情况下直接返回0就可以
证明去问卢卡斯 我不知道
#include#include #include #include #define p 10007using namespace std;int fac[p],inv[p];void Linear_Shaker(){ int i; fac[0]=1; for(i=1;i >T;T;T--) { scanf("%d%d",&n,&m); printf("%d\n",C(n,m)); }}