插头DP
Fantasyzwj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CDOJ885(插头dp,状态压缩)
题意为给一个n*m的棋盘,有两种木块,1*2的和2*1的,求将整个棋盘放满有多少种方案。 n,m都是 小于12的。可以用插头dp来求解,定义状态1表示当前格子有插头,0表示没有插头。显然每个格子只能而且必须有1格插头,那么状态的转移: 当前格子的插头状态为00,则由上一状态的00,01,10转移而来; 当前格子的插头状态为01,或者10,则由上一状态的00转移过来; 当前格子的插头状态为1原创 2014-12-13 12:17:39 · 476 阅读 · 0 评论 -
hdu1693插头DP求多回路
刚学习了插头dp,找了道基础题练练手。 用一个n+1位的二进制数表示轮廓线上的状态,1代表有插头,0代表没有插头。 那么状态的转移为: 如果当前格的两个轮廓线上只有一个插头,那么dp[i][j][k]=dp[i][j-1][k]+dp[i][j-1][k^x^y],否则dp[i][j][k]=dp[i][j-1][k^x^y];代码如下: #include #include #inc原创 2014-12-12 22:15:51 · 409 阅读 · 0 评论 -
HDU4804(插头dp)
这道题的题目大意是这样的: 有一个100*10的棋盘,上面有一些格子不能放砖块。 现在有两种砖块,1*1的和1*2的。 1*1的砖块最少放c个,最多放d个;1*2的砖块没有个数限制,可以水平放,也可以垂直放。砖块与砖块不能重叠。 问有多少种方案把整个棋盘放满。 解法: 用插头dp解决这类问题,用一个二进制数表示轮廓线上的插头状态,0表示没有插头,1表示有插头。 因为1*1的砖块有个限原创 2014-12-14 22:40:47 · 563 阅读 · 0 评论
分享