比较头疼的计数题. 我们发现,放置一个棋子会使得该棋子所在的1个行和1个列都只能放同种棋子. 定义状态 $f_{i,j,k}$ 表示目前已使用了 $i$ 个行,$j$ 个列,并放置了前 $k$ 种棋子的方案数. 假设当前枚举到的是第 $k$ 个棋子,该种棋子有 $num_{k}$ 个. 枚举 $d1,d2$ 表示安排这 $num_{k}$ 个棋子需要用 $d1$ 个行,$d2$ 个列. 可以将 $d1$ 个行和 $d2$ 个列并到一起,这就构成了一个 $d1\times d2$ 的矩形. 在这个…
传送门 解题思路 设\(f[i][j][k]\)表示前\(k\)个颜色的棋子占领了\(i\)行\(j\)列的方案数,那么转移时可以枚举上一个颜色时占领的位置,\(f[i][j][k]=\sum\limits_{l=1}^n\sum\limits_{j=1}^mf[l][r][k-1]*C(n-l,i-l)*C(m-r,j-r)\),但发现这样会少一个\(k\)这种颜色占领的方案数,再设\(g[i][j][k]\)表示用相同颜色的\(k\)个棋子占领\(i\)行\(j\)列的方案数,而算\(g\)…
3294: [Cqoi2011]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 628  Solved: 238[Submit][Status][Discuss] Description   Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm. Output 输出仅一行,即方案总数除以 1,000,000,009的余数. Sample Inp…
3294: [Cqoi2011]放棋子 Description Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm. Output 输出仅一行,即方案总数除以 1,000,000,009的余数. Sample Input 4 2 2 3 1 Sample Output 8 HINT N,M<=30 C<=10 总棋子数<=250 Source [分析] 表示一开始看错题ORZ..以为相同颜…
2839: 集合计数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 523  Solved: 287[Submit][Status][Discuss] Description 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模1000000007.(是质数喔~) Input 一行两个整数N,K Output 一行为答案. Sample Inp…
思路: RT 懒得写了 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; <<)+,mod=; int tmp[N],R[N],fac[N],A[N],B[N],C[N],niB[N]; int pow(ll x,ll y){ ll res=; while(y){ )res=re…
3294: [Cqoi2011]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 755  Solved: 294[Submit][Status][Discuss] Description Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm. Output 输出仅一行,即方案总数除以 1,000,000,009的余数. Sample Input…
http://www.lydsy.com/JudgeOnline/problem.php?id=3294 如果一个颜色的棋子放在了第i行第j列,那这种颜色就会占据第i行第j列,其他颜色不能往这儿放 设第k种颜色的棋子有a[k]个 令g[k][i][j] 表示第k种颜色的棋子,恰好占据i行j列的方案数 g[k][i][j]=C(i*j,a[k])-Σh Σl g[h][l]*C(i,h)*C(j,l)  1<=h<=i,1<=l<=j,且满足 h!=i 或 l !=j 即 总方案数(…
LINK:集合计数 容斥简单题 却引出我对广义容斥的深思. 一直以来我都不理解广义容斥是为什么 在什么情况下使用. 给一张图: 这张图想要表达的意思就是这道题目的意思 而求的东西也和题目一致. 特点:求出某个集合恰好为k的个数. 转换:求出集合>=k的个数或者<=k的个数 从而使用广义容斥容斥出来答案. 关于>=k个数 如上图可见 又很多重复的地方 而广义容斥也是在这么多重复的地方使用的 而并非严格>=k的个数. 换个说法 >=k的方案数 可能有一些存在重复 但是其特点是&g…
洛谷题目链接:[CQOI2011]放棋子 题目描述 在一个m行n列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同 颜色的棋子不能在同一行或者同一列.有多少祌方法?例如,n=m=3,有两个白棋子和一 个灰棋子,下面左边两祌方法都是合法的,但右边两祌都是非法的. 输入输出格式 输入格式: 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm. 输出格式: 输出仅一行,即方案总数除以 1,000,000…