dp动态规划-状态压缩
文章平均质量分 78
Rogershy
选择不逃避,就是选择成长。github项目地址:https://github.com/sunhuanyao/
展开
-
poj 1185 炮兵阵地
基础的状态压缩DP,考虑到第i行和第i-1、第i-2行有直接的关系,于是不难得出:dp[i][j][k] 代表第i行记录了第j行和第j-1行的状态,这里的状态就是二进制的状态,然后加上一个judge判断就行。附代码:#include#include#includeusing namespace std;const int maxn =70;char Map[111][12];原创 2013-09-27 09:55:08 · 490 阅读 · 0 评论 -
hdu 1565 方格取数(1)
我不得不吐槽下这题,第一,这题的数据真的很弱,状压DP,20*17000*17000 居然不超时。第二,C++交RE,G++才行导致我贡献了无限次RE。状压水题,代码如下:#include#include#includeusing namespace std;const int maxn = 20000;int dp[25][maxn];int Map[22][22原创 2013-09-26 18:13:26 · 611 阅读 · 0 评论 -
poj 2411 Mondriaan's Dream
题意:给你一个1*2的矩阵进行填充,结果求填满的种类数。分析:下面是我引用过来的说明,很不错。最上面的为第1行,最下面为第n行从上到下按行DP其中一行的状态我们用一个二进制表示,0表示没有被覆盖,1表示被覆盖了最后得到一个01串,这个串变回十进制就是一个状态定义状态dp[i][s],表示前i-1行已经放满,第i行的状态为s的方案数状态转移方程为 dp[i][s]=sum{ d原创 2013-09-27 19:30:25 · 496 阅读 · 0 评论 -
poj 3254 Corn Fields
题意:在权值为一的土地上种玉米,不能相邻,问有几种摆放方法。分析:在接触过poj 2411后再来做这题应该思路就很明确了,dp[i][j]表示第i行为“J”状态时的方案数。#include#include#includeusing namespace std;const int mod = 100000000;const int maxn = 400;int n,m,num原创 2013-09-28 16:38:08 · 399 阅读 · 0 评论