Film a half-day SXT and online ...
Http://www.cnblogs.com/BLADEVIL/p/3490321.html
1#include <cstdio>2#include <iostream>3#include <cstring>4 #definell Long Long5 using namespacestd;6 Const intmaxn=10023333, mx=1e7;7 intP[maxn],pnum;8 intJC[MAXN],F[MAXN];9 BOOLGG[MAXN];Ten inti,j,k,n,m,modd; One A intRaCharRx; -InlineintRead () { -Rx=getchar (), ra=0; the while(rx<'0'|| Rx>'9') rx=GetChar (); - while(rx>='0'&&rx<='9') ra*=Ten, ra+=rx- -, Rx=getchar ();returnRA; - } - +InlineintPoiintAintBB) { - intC=1; + while(b) { A if(b&1) c=1ll*c*a%modd; atb>>=1, a=1ll*a*a%modd; -}returnC; - } -InlinevoidGetp () { -Registerinti,j; - for(i=2; i<=mx;i++){ in if(!gg[i]) p[++pnum]=i; - for(j=1; j<=pnum&&1ll*p[j]*i<=mx;j++){ togg[p[j]*i]=1; + if(!i%p[j]) Break; - } the } * } $InlinevoidGetphi () {Panax Notoginsengf[1]=1; - for(RegisterintI=2; i<=mx;i++)if(!gg[i]) f[i]=1ll*f[i-1]* (I-1)%modd; the Elsef[i]=1ll*f[i-1]*i%modd; + } A intMain () {intT; theT=read (), modd=read (); + Getp (), - Getphi (); $ for(i=jc[0]=1; i<=mx;i++) jc[i]=1ll*jc[i-1]*i%modd; $ while(t--){ -N=read (), m=read (); -printf"%lld\n", 1ll*f[m]*jc[n]%modd*poi (jc[m],modd-2)%modd); the } - }Wuyi View Code
[bzoj2186] [Sdoi2008] The confusion of the salad princess