int C(int a,int b){if(a<b)return 0; int ans=1; for(int i=0;i<b;i++){ mtim(ans,a-i); }iv[0]=iv[1]=1; for(int i=2;i<=b;i++){ iv[i]=(mu-mu/i)*1LL*iv[mu%i]%mu;//主要是这里不懂 mtim(ans,iv[i]); }return ans; }
主要是组合数要阶乘,阶乘到后面会很大,甚至超过long long范围,那我要怎么处理?