uva11806(容斥原理)
Posted yijiull
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva11806(容斥原理)相关的知识,希望对你有一定的参考价值。
题目连接:UVA - 11806
1 #include<cstdio> 2 #include<cstring> 3 const int maxn=520; 4 const int mod=1e6+7; 5 int C[maxn][maxn]; 6 7 void init() 8 { 9 C[0][0]=1; 10 for(int i=1;i<=maxn;i++) 11 { 12 C[i][0]=C[i][i]=1; 13 for(int j=1;j<i;j++) 14 C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod; 15 } 16 } 17 18 int main() 19 { 20 init(); 21 int cas=1; 22 int t; 23 int n,m,x; 24 scanf("%d",&t); 25 while(t--) 26 { 27 scanf("%d%d%d",&n,&m,&x); 28 int ans=0; 29 for(int i=0;i<16;i++) 30 { 31 int ct=0,r=n,c=m; 32 if(i&1) r--,ct++; 33 if(i&2) r--,ct++; 34 if(i&4) c--,ct++; 35 if(i&8) c--,ct++; 36 if(ct&1) ans=(ans-C[r*c][x]+mod)%mod; 37 else ans=(ans+C[r*c][x])%mod; 38 } 39 printf("Case %d: %d\n",cas++,ans); 40 } 41 }
以上是关于uva11806(容斥原理)的主要内容,如果未能解决你的问题,请参考以下文章