动态规划 插头dp
文章平均质量分 84
Fsss_7
这个作者很懒,什么都没留下…
展开
-
uva11270Tiling Dominoes
链接:http://acm.hust.edu.cn/vjudge/problem/33787 题意:给定一个n*m的矩阵,求用1*2的骨牌放置满的方案数。 分析:轮廓线dp练习题,大白书练习题,设dp[i][j][mask]表示填完(i,j)格子后的状态为mask的方案数。 代码: #include #include #include #include #include #include原创 2016-08-12 21:32:15 · 419 阅读 · 0 评论 -
hdu4804Campus Design
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4804 题意:给定一个n*m的矩阵,矩阵中有些是障碍点有些是空位置,要求用1*1和1*2的骨牌覆盖整个矩阵并且1*1的骨牌使用的个数在[c,d]之间,求方案数。 分析:比较裸的轮廓线dp,直接设dp[i][j][mask][k]表示填到第i行第j列后状态为mask并且1*1使用了k个的方案数。O(n*m原创 2016-08-13 15:21:55 · 439 阅读 · 0 评论 -
uvalive3620Manhattan Wiring
链接:http://acm.hust.edu.cn/vjudge/problem/11229 题意:给定一个n*m的矩阵,矩阵中有两个2和两个3,其他的为0/1,0表示空地,1表示障碍。要求将2连到2,3连到3并且两条线不能相交,求最短距离。 分析:大白书轮廓线dp例题,用3进制保存状态,枚举所有转移时的状态。注意新的一行开始时要将上一行最后那个点的状态的轮廓线右移一位。 代码: #inc原创 2016-08-13 20:47:42 · 515 阅读 · 0 评论 -
hdu1693Eat the Trees
链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1693 题意:给定一个n*m的矩阵,每个格子要么是树要么是空地。每次选择一个环(环上全是树)然后删除这些树,直到删完全部的树。求方案数。 分析:基础的插头dp。只要标记每个位置是否有插头即可。 代码: #include #include #include #include #includ原创 2016-09-08 14:36:41 · 318 阅读 · 0 评论 -
URAL 1519Formula 1
链接:http://ln1.vjudge.net/contest/3#overview 题意:给定一个矩阵,每个格子为空格或者有障碍物。求覆盖到所有的空白格的哈密顿回路的方案数。 分析:插头dp,换了一种更模块化的写法,手写hash,我用的是4进制的括号匹配表示。因为要求只能有一条回路,那么我们只要确定()括号合并只能在最后一个空格即可。这样就不会产生多余的回路啦。 代码: #includ原创 2016-09-08 17:24:07 · 396 阅读 · 0 评论