动态规划-状态压缩-覆盖

Posted hyserendipity

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划-状态压缩-覆盖相关的知识,希望对你有一定的参考价值。

2020-03-01 23:08:51

问题描述:

你有一块棋盘,棋盘上有一些格子已经坏掉了。你还有无穷块大小为1 * 2的多米诺骨牌,你想把这些骨牌不重叠地覆盖在完好的格子上,请找出你最多能在棋盘上放多少块骨牌?这些骨牌可以横着或者竖着放。

输入:n, m代表棋盘的大小;broken是一个b * 2的二维数组,其中每个元素代表棋盘上每一个坏掉的格子的位置。

输出:一个整数,代表最多能在棋盘上放的骨牌数。

示例 1:

技术图片

输入:n = 2, m = 3, broken = [[1, 0], [1, 1]]
输出:2
解释:我们最多可以放两块骨牌:[[0, 0], [0, 1]]以及[[0, 2], [1, 2]]。

 

示例 2:

技术图片

输入:n = 3, m = 3, broken = []
输出:4
解释:下图是其中一种可行的摆放方式

 

限制:

1 <= n <= 8
1 <= m <= 8
0 <= b <= n * m

问题求解:

 

以上是关于动态规划-状态压缩-覆盖的主要内容,如果未能解决你的问题,请参考以下文章

dp状态压缩

动态规划——用二进制表示集合的状态压缩DP

状态压缩-动态规划

BZOJ2004公交线路(动态规划,状态压缩,矩阵快速幂)

动态规划(DP),压缩状态,插入字符构成回文字符串

对使用状态压缩和动态规划求hamilton最短路径的理解