题目:ZOJ Problem Set - 2563 Long Dominoes
题意:给出1*3的小矩形,求覆盖m*n的矩阵的最多的不同的方法数?
分析:有一道题目是1 * 2的,比较火,链接:这里
这个差不多,就是当前行的状态对上一行有影响,对上上一行也有影响。所以
定义状态:dp【i】【now】【up】表示在第 i 行状态为now ,上一行状态为 up 时的方案数。
...
分类:
其他好文 时间:
2014-10-09 18:52:47
阅读次数:
159
题目:ZOJ Problem Set - 2297 Survival
题意:给出一些怪,有两个值,打他花费的血和可以增加的血,然后有一个boss,必须把小怪所有都打死之后才能打boss,血量小于0会死,也不能大于100.
分析:定义状态:dp【st】,表示在 st 状态下的血量。
然后转移:dp【st】 = max (dp【st】,dp【st&~(1
注意初始化的时候必须...
分类:
其他好文 时间:
2014-10-09 16:33:48
阅读次数:
366
Andrew Stankevich #21 G题,状压DP...
分类:
其他好文 时间:
2014-10-09 14:38:14
阅读次数:
144
这题主要是计算连通子图的个数(c)和不连通子图的个数(dc)还有连通度为1的子图的个数(c1)和连通度为2以上的子图的个数(c2)之间的转化关系
主要思路大概如下:
用状态压缩的方法算出状态为x的子图的不连通子图个数dc[x],dc[x] = ∑ c[i]*(2^edge[x-i]),i为x的子集且i中有x的编号最小的元素,edge[x] 表示x集合内有几条边
连通子图个数c[x] = 2...
分类:
其他好文 时间:
2014-10-09 02:03:18
阅读次数:
228
#include
#include
using namespace std;
int n,m;
int dp[5000][15];
int yu[5000];
int numstate=0;
int fib[15];
void init() //n行m列,状态一行推一行
{
scanf("%d%d",&n,&m);
int maxs=(1<<m);...
分类:
其他好文 时间:
2014-10-07 11:59:13
阅读次数:
157
题目大意:一张网格图,上面有一些点可能有某种钥匙。jied...
分类:
其他好文 时间:
2014-10-06 18:57:30
阅读次数:
152
Corn FieldsTime Limit:2000MSMemory Limit:65536KTotal Submissions:4739Accepted:2506DescriptionFarmer John has purchased a lush new rectangular pasture ...
分类:
其他好文 时间:
2014-10-05 04:00:47
阅读次数:
243
又是一道状态压缩,刚开始老是往博弈的方法想,总是没思路。#include #include #include #include using namespace std;const int N=21;const int inf=0x3f3f3f3f;int g,n,s;int sum[1<<N];in...
分类:
其他好文 时间:
2014-10-03 04:41:13
阅读次数:
242
Travelling
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3905 Accepted Submission(s): 1234
Problem Description
After coding so...
分类:
其他好文 时间:
2014-10-02 22:51:33
阅读次数:
408
题目大意:
给出的DNA序列有一个权值,请构造一个长度为I的DNA序列使得在这段DNA序列的权值最大。如果为负数就输出噼里啪啦。。。
思路分析:
构造序列就是在ac自动机上走,求最大要用到dp
dp[i][j][k] 表示现在构造到了长度 i 。此时的我们把当前字符放在j节点,并且满足了k状态。k是一个10位的2进制状态压缩。
注意这道题上有坑就是一个序列可能有多个权值。所以不能...
分类:
其他好文 时间:
2014-10-02 15:44:43
阅读次数:
173