标签:i++ http ica esc upload sam tor eve 输入
输入的2*n个数字保证全不相同。
1 #include<bits/stdc++.h> 2 using namespace std; 3 int c[2005][2005],a[2005],b[2005],dp[2005][2005],g[2005],jc[2005]; 4 int mo=1000000009; 5 int main() 6 { 7 int n,k; 8 scanf("%d%d",&n,&k); 9 if((n-k)%2!=0){ printf("0\n"); return 0; } 10 k=(n-k)/2; k=n-k; 11 for(int i=1;i<=n;i++)scanf("%d",&a[i]); 12 for(int i=1;i<=n;i++)scanf("%d",&b[i]); 13 sort(a+1,a+n+1); sort(b+1,b+n+1); 14 b[0]=-2000000000; b[n+1]=2000000000; 15 int l=0; dp[0][0]=1; 16 for(int i=1;i<=n;i++) 17 { 18 while(b[l+1]<a[i])l++; 19 for(int j=0;j<=min(i,l);j++) 20 { 21 if(j)dp[i][j]=(1ll*(l-(j-1))*dp[i-1][j-1])%mo; 22 dp[i][j]=(dp[i][j]+dp[i-1][j])%mo; 23 } 24 } 25 c[0][0]=1; 26 for(int i=1;i<=n;i++) 27 { 28 c[i][0]=1; c[i][i]=1; 29 for(int j=1;j<=i-1;j++)c[i][j]=(c[i-1][j-1]+c[i-1][j])%mo; 30 } 31 jc[1]=1; 32 for(int i=2;i<=n;i++)jc[i]=(1ll*jc[i-1]*i)%mo; 33 g[n]=dp[n][n]; 34 for(int i=n-1;i>=0;i--) 35 { 36 g[i]=(1ll*dp[n][i]*jc[n-i])%mo; 37 for(int j=i+1;j<=n;j++)g[i]=(1ll*g[i]-1ll*g[j]*c[j][i])%mo; 38 } 39 printf("%d\n",(g[k]+mo)%mo); 40 } 41 42
标签:i++ http ica esc upload sam tor eve 输入
原文地址:http://www.cnblogs.com/GhostReach/p/6440142.html