UVA 11806 容斥原理
2013-05-04 14:07
381 查看
#include<cstdio> #include<cstring> #include<string> #include<iostream> #include<map> #include<vector> #include<utility> #include<queue> #include<deque> #include<iomanip> #include<set> #include<algorithm> #include<list> #include<sstream> using namespace std; const int maxn = 511; const int mod = 1000007; int C[maxn+10][maxn+10]; int ans,k,n,m; void dfs(int x,int cnt,int r,int c) { if(x==0) { if(cnt&1) ans-=C[r*c][k]; else ans+=C[r*c][k]; return; } if(x>2) { dfs(x-1,cnt+1,r-1,c); dfs(x-1,cnt,r,c); } else { dfs(x-1,cnt+1,r,c-1); dfs(x-1,cnt,r,c); } } int main() { int i,j; for(i=0;i<=maxn;++i) C[i][0]=C[i][i]=1; for(i=1;i<=maxn;++i) { for(j=1;j<i;++j) { C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod; } } int T; scanf("%d",&T); for(int cas=1;cas<=T;++cas) { scanf("%d%d%d",&n,&m,&k); ans=0; dfs(4,0,n,m); ans=(ans%mod+mod)%mod; printf("Case %d: %d\n",cas,ans); } return 0; }
相关文章推荐
- UVA 11806 Cheerleaders (容斥原理
- uva11806 - Cheerleaders 容斥原理
- uva11806(容斥原理)
- uva11806(容斥原理)拉拉队
- uva 11806(容斥原理)
- uva 11806 容斥原理
- uva 11806 - Cheerleaders(容斥原理)
- UVa 11806 拉拉队(容斥原理)
- UVA 11806 Cheerleaders(容斥原理)
- UVA.11806 Cheerleaders (组合数学 容斥原理 二进制枚举)
- 数学,容斥原理(拉拉队,uva 11806)
- Cheerleaders UVA - 11806 (容斥原理)
- UVA 11806 Cheerleaders (组合+容斥原理)
- uva11806Cheerleaders--容斥原理
- UVa 11806 - Cheerleaders (组合数学 容斥原理)
- UVA 11806 Cheerleaders (容斥原理)
- UVA 11806 Cheerleaders(容斥原理)(组合数)
- UVA 11806 Cheerleaders (容斥原理)
- UVa 11806 Cheerleaders (数论容斥原理)
- UVA 11806 容斥原理