感觉自己就是不怎么擅长计数的问题

设f[k,i,j]表示前k种颜色占据了i行j列的方案

g[k,i,j]表示第k种颜色占据了i行j列的方案,注意要减去并没占据满i行j列的情况

然后转移就很好写了

像这种题目构造好了状态后都非常好解决

 const mo=;
var g,f:array[..,..,..] of longint;
c:array[..,..] of longint;
a:array[..] of longint;
n,m,i,j,k,q,x,y,ans:longint; begin
readln(n,m,q);
c[,]:=;
for i:= to n*m do
begin
c[i,]:=;
for j:= to i do
c[i,j]:=(c[i-,j]+c[i-,j-]) mod mo;
end;
for i:= to q do
read(a[i]);
for k:= to q do
for i:= to n do
for j:= to m do
begin
if (i*j<a[k]) or (i>a[k]) or (j>a[k]) then continue;
g[k,i,j]:=c[i*j,a[k]];
for x:= to i do
for y:= to j do
if (i-x+j-y)> then
g[k,i,j]:=(g[k,i,j]-int64(g[k,x,y])*int64(c[i,x]) mod mo*int64(c[j,y]) mod mo+mo) mod mo;
end; f[,,]:=;
for k:= to q do
begin
a[k]:=a[k]+a[k-];
for i:= to n do
for j:= to m do
begin
if i*j<a[k] then continue;
for x:= to i do
for y:= to j do
f[k,i,j]:=(f[k,i,j]+int64(f[k-,i-x,j-y])*int64(g[k,x,y]) mod mo*int64(c[i,x]) mod mo*int64(c[j,y]) mod mo) mod mo;
end;
end;
for i:= to n do
for j:= to m do
ans:=(ans+int64(f[q,i,j])*int64(c[n,i]) mod mo*int64(c[m,j]) mod mo) mod mo; writeln(ans);
end.

bzoj3294的更多相关文章

  1. BZOJ3294 CQOI2011放棋子(动态规划)

    可以看做棋子放在某个位置后该种颜色就占领了那一行一列.行列间彼此没有区别. 于是可以设f[i][j][k]表示前k种棋子占领了i行j列的方案数.转移时枚举第k种棋子占领几行几列.注意行列间是有序的,要 ...

  2. 【BZOJ3294】放棋子(动态规划,容斥,组合数学)

    [BZOJ3294]放棋子(动态规划,容斥,组合数学) 题面 BZOJ 洛谷 题解 如果某一行某一列被某一种颜色给占了,那么在考虑其他行的时候可以直接把这些行和这些列给丢掉. 那么我们就可以写出一个\ ...

  3. BZOJ3294: [Cqoi2011]放棋子

    Description   Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数保证不超过nm. Output 输出 ...

  4. bzoj3294[Cqoi2011]放棋子 dp+组合+容斥

    3294: [Cqoi2011]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 755  Solved: 294[Submit][Status] ...

  5. bzoj千题计划261:bzoj3294: [Cqoi2011]放棋子

    http://www.lydsy.com/JudgeOnline/problem.php?id=3294 如果一个颜色的棋子放在了第i行第j列,那这种颜色就会占据第i行第j列,其他颜色不能往这儿放 设 ...

  6. 【BZOJ3294/洛谷3158】[CQOI2011]放棋子(组合数+DP)

    题目: 洛谷3158 分析: 某OIer兔崽子的此题代码中的三个函数名:dfs.ddfs.dddfs(充满毒瘤的气息 显然,行与行之间.列与列之间是互相独立的.考虑背包,用\(f[k][i][j]\) ...

  7. BZOJ3294: [Cqoi2011]放棋子(计数Dp,组合数学)

    题目链接 解题思路: 发现一个性质,如果考虑一个合法的方案可以将行和列都压到一起,也就是说,在占用行数和列数一定的情况下,行列互换是不会影响答案的,那么考虑使用如下方程: $f[i][j][k]$为占 ...

  8. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

随机推荐

  1. 基于Golang的游戏服务器框架cellnet开发日记(二)

    看官们肯定还有大部分不是很熟悉Actor模型. 我这里基于Erlang, Skynet等语言和框架库来实战型解释下Actor模型.  Actor概念 Actor模型和OO类似, 都是符合人的思维模式进 ...

  2. php Zend Opcache,xcache,eAccelerator缓存优化详解及对比

    XCACHE XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接 ...

  3. 《C和指针》 读书笔记 -- 第13章 高级指针话题

    1.函数指针 int (*f)(); int *(*f[])(); 用途: [1]回调函数 e.g. /*在一个单链表中查找指定值*/ Node *search_list(Node *node,voi ...

  4. NVIDIA显卡设置提升MineCraft流畅度

    很喜欢MineCraft(我的世界)这款游戏.可09年Y450的配置现在看来有点弱,尽管将Y450的CPU升级至了2.8Ghz的T9600,内存升级至1066Mhz的4G双通道内存,硬盘更换为128G ...

  5. WPF-实现Windows 7 样式 Aero TreeView 控件

    关于实现Windows 7 样式 Aero TreeView 控件的具体过程可以参考如下文章 http://www.cnblogs.com/o2ds/archive/2010/06/22/176302 ...

  6. 关于CSS的图像放大问题的解决,需要借助jQuery等直接用css3设置

    W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发, ...

  7. spot 5、ALOS监督分类波段组成

    spot 5监督分类RGB:412 ALOS分类波段RGB:432

  8. WRS是什么?

    全球参考系(WRS)是为卫星下行数据服务而建立的一种全球符号坐标系统,本文详细介绍了Landsat卫星的轨道特性,给出了相应的WRS网格坐标位置的估算方法,并给出了估算的结果。对该方法的研究为地面应用 ...

  9. 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证

    http://blog.csdn.net/toss156/article/details/7638529

  10. 录制游戏视频——fraps

    http://pcedu.pconline.com.cn/341/3417224.html