标签:
题意:
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define inc(i,j,k) for(int i=j;i<=k;i++) 5 #define maxn 1000010 6 #define mod 1000000007 7 using namespace std; 8 9 inline int read(){ 10 char ch=getchar(); int f=1,x=0; 11 while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1; ch=getchar();} 12 while(ch>=‘0‘&&ch<=‘9‘)x=x*10+ch-‘0‘,ch=getchar(); 13 return f*x; 14 } 15 long long power(int a,int b){ 16 if(b==0)return 1; if(b==1)return a; 17 long long c=power(a,b>>1); 18 if(b&1)return c*c%mod*a%mod;else return c*c%mod; 19 } 20 long long a[maxn],b[maxn]; int t,n,m; 21 long long c(int n,int m){ 22 return a[n]*power(a[n-m]*a[m]%mod,mod-2)%mod; 23 } 24 int main(){ 25 a[0]=1; inc(i,1,maxn-10)a[i]=a[i-1]*i%mod; b[0]=1; b[1]=0; inc(i,2,maxn-10)b[i]=(b[i-1]+b[i-2])%mod*(i-1)%mod; 26 t=read(); 27 while(t--){n=read(); m=read(); printf("%lld\n",c(n,m)*b[n-m]%mod);} 28 return 0; 29 }
20160814
标签:
原文地址:http://www.cnblogs.com/YuanZiming/p/5778103.html