7_4_L题 Cheerleaders 题解[uva 11806](容斥)
来源:互联网 发布:我要开淘宝网店怎么开 编辑:程序博客网 时间:2024/06/05 08:09
题目链接
简单题意
有个n*m的矩阵,在其中放置k个拉拉队员,要求四边上都至少有一个,求有多少种放法。
思路
容斥定理,
全部的放法有
有一条边没有的放法有
有两条边没有的放法有
有三条边没有的放法有
四条边上都没有的放法有
然后用容斥定理加减一下就可以了
代码
#include <cstdio>#include <string>#include <cmath>#include <iostream>using namespace std;typedef long long ll;const int maxn = 505;const ll mod = 1e6+ 7;ll dp[maxn][maxn];void init (){ for(int i = 0 ; i < maxn ; i ++){ dp[i][0] = 1; dp[i][i] = 1; } for(int i = 0 ; i < maxn ; i ++){ for(int k = 1 ; k < i ; k ++){ dp[i][k] = dp[i-1][k] + dp[i-1][k-1]; dp[i][k] %= mod; } }}ll C(int n,int m){ return dp[n][m];}int main(){ init(); int T; scanf("%d", &T); int kas = 1; while(T --){ int n,m,k; scanf("%d %d %d", &n,&m,&k); int ans = C(n*m,k); ans = (ans - C(n*(m-1),k) + mod) %mod; ans = (ans - C(n*(m-1),k) + mod) %mod; ans = (ans - C(m*(n-1),k) + mod) %mod; ans = (ans - C(m*(n-1),k) + mod) %mod; ans = (ans + C((n-1)*(m-1),k)) %mod; ans = (ans + C((n-1)*(m-1),k)) %mod; ans = (ans + C((n-1)*(m-1),k)) %mod; ans = (ans + C((n-1)*(m-1),k)) %mod; ans = (ans + C((n)*(m-2),k)) %mod; ans = (ans + C((n-2)*(m),k)) %mod; ans = (ans - C((n-2)*(m-1),k) + mod) %mod; ans = (ans - C((n-2)*(m-1),k) + mod) %mod; ans = (ans - C((n-1)*(m-2),k) + mod) %mod; ans = (ans - C((n-1)*(m-2),k) + mod) %mod; ans = (ans + C((n-2)*(m-2),k) + mod) %mod; printf("Case %d: %d\n",kas++,ans); } return 0;}
0 0
- 7_4_L题 Cheerleaders 题解[uva 11806](容斥)
- UVA 11806 - Cheerleaders (容斥原理)
- UVa 11806 Cheerleaders / 容斥原理
- uva 11806 - Cheerleaders(容斥原理)
- uva 11806 Cheerleaders(容斥)
- UVA 11806 Cheerleaders (容斥原理)
- uva 11806 Cheerleaders (容斥原理)
- uva 11806 Cheerleaders【容斥原理】
- uva 11806 - Cheerleaders(容斥原理+二进制)
- uva 11806 Cheerleaders 容斥原理
- UVA 11806 Cheerleaders(容斥原理)
- UVa 11806 Cheerleaders 【容斥】【入门】
- CheerLeaders Uva 11806(容斥原理)
- UVa 11806 Cheerleaders (组合&逆向思维||容斥定理)
- UVa 11806 Cheerleaders 解题报告(容斥原理)
- UVA 11806 - Cheerleaders(数论+容斥原理)
- UVa 11806 - Cheerleaders (组合数学 容斥原理)
- UVA 11806-Cheerleaders-容斥原理+组合数打表
- Android 复习4 神奇的问题 杂谈
- gcc的优化选项
- ApiCloud (1)
- JAVA中多线程初体验
- 我也来写个小总结---小白学git
- 7_4_L题 Cheerleaders 题解[uva 11806](容斥)
- SQL Server Replication II
- 路由器开发相关知识总结 —— IEEE1588基础知识
- Ubuntu server 14.0464位上编译Hadoop 2.6.4(纯键盘模式)
- 嵌入式软件工程师常见笔试题
- 最小二乘法
- gradle下,自动关联versionName,versionCode
- jsp学习笔记1
- 安卓PC实现通信与UDP的Java实现