本来就是一个写不大来动态规划的人,结果现在又了解到还有种东西叫状态压缩dp,唉。。。 找了一道例题来试试看:http://www.lydsy.com/JudgeOnline/problem.php?id=1725 解:我们用f[i][j]来表示当前第i行,状态为j的情况下,(且之前的1~i-1的方案 ...
分类:
其他好文 时间:
2017-02-25 15:48:03
阅读次数:
173
考虑到n只有15,那么状压DP即可。 题目要求说输出字典序最小的答案的顺序,又考虑到题目给出的字符串本身字典序是递增的,那么枚举i的时候倒着来即可。因为在同样完成的情况下,后选字典序大的,小的字典序就会在前面,那么整体的字典序就会更小。代码如下: ...
分类:
其他好文 时间:
2017-02-14 20:20:29
阅读次数:
115
高妙的算法—— 可以构造出形如: 1 2 4 8 16 32 64 3 6 12 24 48 9 18 36 27 54 的矩阵 相邻的数不能被同时选到 因此 将每一个数构造进矩阵 然后状态压缩dp 根据乘法原理 就可以 得出所有的方案 ...
分类:
其他好文 时间:
2017-01-22 12:18:15
阅读次数:
155
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片。求需要买多少包才能拿到所以的N张卡片,求次数的期望。 析:期望DP,是很容易看出来的,然后由于得到每张卡片的状态不知道,所以用状态压缩,dp[i] 表示这个状态时,要全部收齐卡片的期望。 由于有可能是什么 ...
分类:
其他好文 时间:
2016-12-06 02:08:58
阅读次数:
268
用dp来求最短路,虽然效率低,但是状态的概念方便解决最短路问题中的很多限制,也便于压缩以保存更多信息。 本题要求访问全图,且每个节点不能访问两次以上。所以用一个三进制数保存全图的访问状态(3^10,空间是足够的),用dp[z+bit[j]][j]=dp[z][i]+ct[i][j]就可以表示,从上一 ...
分类:
其他好文 时间:
2016-11-12 14:11:52
阅读次数:
143
http://acm.hdu.edu.cn/showproblem.php?pid=2167 第一道状态压缩dp,其实就是爆搜,只不过把排除了大量不可能的情况,先用sta保存每行可能的情况,sum[i][j]保存i行j种情况的该行和,然后依次更新dp。 ...
分类:
其他好文 时间:
2016-09-27 01:48:42
阅读次数:
108
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8170 Accepted Submission(s): 3095 Proble ...
分类:
其他好文 时间:
2016-09-08 23:07:01
阅读次数:
220
一开始根本不会状压dp,上网各种找题解,但发现他们写的都很......反正我作为一个没有接触过状态压缩的,根本看不懂! 然后看了好多状态压缩的题的题解,总结了一下思路,思路很重要,有了思路转换成计算机语言就好了。因此我先讲一下思路: 先说说地图,地图上每一行的01代表一个状态,比如输入样例中的111 ...
分类:
其他好文 时间:
2016-09-07 14:27:23
阅读次数:
195
1、poj 3254 Corn Fields 状态压缩dp入门题 2、总结:二进制实在巧妙,以前从来没想过可以这样用。 题意:n行m列,1表示肥沃,0表示贫瘠,把牛放在肥沃处,要求所有牛不能相邻,求有多少种放法。 #include<iostream> #include<cstring> #inclu ...
分类:
其他好文 时间:
2016-08-24 14:26:10
阅读次数:
211