首页 > 代码库 > uva11806(容斥原理)
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(容斥原理)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。