
状压DP
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
POJ3311 Hie with the Pie 状压DP
今天好不容易切了两道这样的题目,第一道就不提了,完全是题目有特殊情况没判,基本上是入门型的了,这道还不错的,而且有个博客写的特别的好,http://www.tuicool.com/articles/aUnAru转一下他的状态方程:记dp(v, S)为从v点出发,遍历S集合中的每一个点后,回到出发点(0点)的最短距离。递推表达式的推导如下:如果 S 为空集,即没有需要遍历的结原创 2014-08-15 23:19:39 · 912 阅读 · 0 评论 -
HDU3001 Travelling 状压DP
哭瞎啊,每个城市可以经过至多两次,但没有要求必须经过两次,想用 两个状压来乱搞搞,结果自认为会T,结果 WA了,搞了一下午,没想到用三进制啊,智商捉急,参考了http://blog.youkuaiyun.com/lenleaves/article/details/7980955 这个博客每个城市可以经过1或2次,所以三进制可以代表所有状态了,接下来处理方式类似于二进制的,只是没有了位运算一些判断原创 2014-08-18 20:04:53 · 770 阅读 · 0 评论 -
ZOJ3471 MostPowerful 状压DP
同类类于poj3311,但是要简单,不用转什么弯子直接 十种气体 每种是否存在的状态 s,然后 dp[s] = max(dp[s],dp[s - {被碰的气体状态}] + 两气体相碰获得的价值);想起来不难,写起来也算比较简单int n;int dp[1<<12];int mp[10 + 5][10 + 5];void init() { memset(mp,0原创 2014-08-20 19:58:23 · 923 阅读 · 0 评论 -
POJ3254 Corn Fields 状态压缩DP
看了这位博主的经历http://blog.youkuaiyun.com/lenleaves/article/details/7972224感觉有些差不多,因为CF比赛状压被虐 所以开始刷刷题,从最简单的开始复习吧,细节处理很差,唉DP方程跟一般的有些不一样,dp[i][j]表示在状态i的情况下 到第j行的摆放有多少种,然后总数就是 dp[i][n - 1]求和,以第一行为边界往下推,第一行原创 2014-08-13 22:54:30 · 842 阅读 · 0 评论 -
ZOJ3305Get Sauce 状压DP,
状压DP的题目留个纪念,首先题意一开始读错了,搞了好久,然后弄好了,觉得DFS可以,最后超时,修改了很久还是超时,没办法看了一下n的范围,然后觉得状压可以,但是没有直接推出来,就记忆化搜索了一下,可是一直错,莫名奇妙,然后没办法看了一下题解,发现了下面这个比较好的方法,然后按照这个方程去推,然后敲,也是WA了好多把,写的太搓了,没人家的清楚明了,唉~也算是给自己留个纪念,状压一直做的都不太好~唉~原创 2015-02-04 22:15:07 · 931 阅读 · 0 评论 -
URAL 1152 False Mirrors 搜索|记忆化搜索|状压
n个阳台,每个阳台上有怪物,第一个阳台跟最后一个相邻,每次攻击其中一个阳台,那么相邻的两个也会被破坏掉,但是你攻击一次,剩下的没有被消灭的怪兽就会攻击你,问消灭所有怪兽 所受伤害值最少是多少一开始就想到了DFS,于是写了一发,居然超时了,然后看到n只有20,于是想到了状态压缩+记忆化搜索,还是比较清晰的推起来,然后31ms过了,后来过了又去看了一下网上题解,呵呵,发现 dfs也是可以的原创 2015-03-23 13:54:35 · 737 阅读 · 0 评论