luogu 3158 [CQOI2011]放棋子】的更多相关文章

时隔多日 我又来挑战这道dp. 几个月前给写自闭了.几个月后再来. 首先一个我们能列出来的状态 是以行为转移的 f[i]表示前i行...但是会发现此时列我们控制不了 且棋子的颜色,个数我们也要放到状态里. 这个dp是一个完成不了 或者说复杂度过高的dp. 必须得换一个状态 可以想到 由于每种颜色棋子独立 所以我们没有必要若干个颜色的棋子进行混合求方案. 可以一种一种颜色的棋子放. 所以有状态 f[i][j][k]表示前i种颜色的棋子占领了j行K列的方案数. 这样行和列的状态有了 我们只需要安排一…
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]放棋子 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…
[CQOI2011]放棋子 \(solution:\) 看到这道题我们首先就应该想到有可能是DP和数论,因为题目已经很有特性了(首先题面是放棋子)(然后这一题方案数很多要取模)(而且这一题的数据范围很小) 但真正实用的还是分析题目性质:这一道题我们仔细读题,可以发现每一种棋子的影响是相对独立的(即我们只需要知道这种颜色的棋子占了多少行列,而不需要知道它占的哪一行那一列)(这个可以画画图自证一下),而且每一种颜色占多少行和多少列也有方案数(我占两行两列,可以用两个棋子,也可以用三个或四个棋子)(而…
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 即 总方案数(…
洛谷题目链接:[CQOI2011]放棋子 题目描述 在一个m行n列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同 颜色的棋子不能在同一行或者同一列.有多少祌方法?例如,n=m=3,有两个白棋子和一 个灰棋子,下面左边两祌方法都是合法的,但右边两祌都是非法的. 输入输出格式 输入格式: 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm. 输出格式: 输出仅一行,即方案总数除以 1,000,000…
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..以为相同颜…
P3158 [CQOI2011]放棋子 放棋子的顺序和方案数无关,所以可以从按颜色递推 设$f[u][p][k]$为放到第$u$种颜色,所剩空间$p*k$的方案数 $g[u][i][j]$表示第$u$种颜色占据$i*j$空间的方案数,可以预处理 $g[u][i][j]=\binom{i*j}{c[u]}-\sum_{p=1}^{i}\sum_{k=1}^{j}g[u][p][k]*\binom{i}{i-p}*\binom{j}{j-k}*[p<i||j<k]$ $f[u][p][k]=\su…
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 我们发现因为不能同行同列颜色不同的格子,所以我们相当于是将整张棋盘的行列分给这C种棋子. 这样我…
题目描述: 输入格式 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm.N,M<=30 C<=10 总棋子数有大于250的情况 输出格式 输出仅一行,即方案总数除以 1,000,000,009的余数. 样例 样例输入 4 2 2 3 1 样例输出 8 数据范围与提示 30% n,m<=10 solution:10%:cout<<0<<endl; 肯定有0的情况比如c>m…