[CQOI2011]放棋子

Posted miracevin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CQOI2011]放棋子相关的知识,希望对你有一定的参考价值。

技术分享图片

想到了50%吧算是。

f[i][j][k]表示,前i种,占了j行k列。方案数。

发现,转移要处理:“用c个棋子,占据n行m列”的方案数。

设g[i][j][k]表示,i行j列用k个棋子占的方案数。直接处理复杂度爆炸。

然后我就mengbier了。

考虑大力容斥:

也即,总方案数-不合法方案数(不能覆盖完全)

g[i][j][k]=C(i*j,k)-∑l∑r:g[l][r][k]*C(i,l)*C(j,r) (i*j>=k&&l<=i&&j<=r)

显然由于l,r不同,不会减多。

发现不用统计所有的 k,只用统计那c个即可。

然后f[i][j][k]的转移就顺理成章了。

复杂度:O(n^2m^2c)

 

总结:

没有想到容斥那一步。。。

正难则反。

最关键的是,不用k之间的递推,所以,第三维看似是k,其实是c(10而已)

 

以上是关于[CQOI2011]放棋子的主要内容,如果未能解决你的问题,请参考以下文章

[CQOI2011] 放棋子 - 计数dp

BZOJ 3294: [Cqoi2011]放棋子

luogu 3158 [CQOI2011]放棋子

[题解] [CQOI2011] 放棋子

P3158 [CQOI2011]放棋子(dp+组合数)

[CQOI2011]放棋子