状压DP
文章平均质量分 85
WA是一笔财富
这个作者很懒,什么都没留下…
展开
-
POJ1185 炮兵阵地 状压DP经典
传送门:POJ1185中文题就不说题意了。网上都说是经典的状压DP,我也是第一次做状压DP的题,但感觉自己深深的被这题奇妙的位运算震慑了。。世界真奇妙。。奉上一篇讲解的无敌巨明白的解题思路:状态压缩DP(使用位运算加速)这是个经典的状态压缩DP,为加深印象详细写写一下报告,由于是中文题目所以不说题意了思考方法:首先,一个炮的攻击有两行,所以对于第i行来讲,i转载 2017-01-15 23:09:26 · 301 阅读 · 0 评论 -
HDU3001 三进制状压DP
传送门:HDU3001题意:给定一个无向带权图,问在每个点最多走两次的情况下,将图中所有点都遍历一遍的最小花费是多少。我做的时候这题被放在搜索专题里。。然后没认真看题还以为每个点只能走一次,认为是个简单的TSP问题。。然后就被教育了。。解法:因为每个点最多走两次,可以由一般的二进制状压联想到用三进制去表示状态,用一个三进制数字的一位数字表示一个点的访问状态,0代表未访问,1代表原创 2017-01-17 21:52:20 · 442 阅读 · 0 评论 -
计蒜客 2017 复赛 腾讯消消乐 状压dp
腾讯推出了一款益智类游戏——消消乐。游戏一开始,给定一个长度为 nn 的序列,其中第 ii 个数为 A_iAi。游戏的目标是把这些数全都删去,每次删除的操作为:选取一段连续的区间,不妨记为 [L,R][L,R],如果这一段区间内所有数的最大公约数 \geq k≥k(kk 值在游戏的一开始会给定),那么这一段区间就能被直接删去。注意:一次删除以后,剩下的数会合并成为一个连续区间。原创 2017-06-10 22:08:57 · 526 阅读 · 0 评论 -
POJ 2441 Arrange the Bulls && POJ 3254 Corn Fields 状压DP入门
传送门:POJ2441题意:将n头牛分到m个牛栏里,每头牛都有自己喜欢的牛栏,每个牛栏只能放一头牛,问共有多少种分配方案。思路:由于n和m都很小,状压搞一搞就好了,dp[i]表示m个牛栏的状态为i的分配方案(将i转化为2进制,1表示有牛,0表示没有牛)__builtin_popcount(k)返回k的二进制中有多少个1代码:#include#include#include原创 2017-08-07 23:57:31 · 225 阅读 · 0 评论 -
POJ - 2836 Rectangular Covering 预处理 + 状压DP
传送门:POJ2836题意:坐标平面上有n各点,用任意大小(非零)的矩形覆盖它们,每个矩形至少覆盖两个点,矩形边长为正整数,求最少所需要的矩形的总面积。思路:先将平面上任意两个点组成的矩形预处理出来,并将每个矩形内部包含的点的状态压成一个整数,然后进行dp,dp[s]表示覆盖的点集状态为s的最小面积,枚举每个预处理出来的矩形进行转移就好了。代码:#include#include原创 2017-08-09 23:35:34 · 318 阅读 · 0 评论 -
POJ - 1795 DNA Laboratory 状压DP + dfs
传送门:POJ1795题意: 给出n个字符串,问包含这n个字符串的最短的总串字典序最小是多少。思路:思路来自:http://blog.csdn.net/qq_29169749/article/details/54755026dp[i][s]:=在所有字符串选取情况为s的状态下,最前面的字符串为i号字符串的最小长度。依次枚举下一个字符串可得状态转移方程 dp[i][s | 1 c原创 2017-08-09 23:44:35 · 361 阅读 · 0 评论 -
POJ - 3411 Paid Roads 状压DP || dfs
传送门:POJ3411题意:N个城市间有m条单向路,分别从a到b,可以在c处交P路费,也可以到b处交R路费。问从1到n的最少花费是多少。思路:状压DP, dp[s][i]表示经过的城市集合状态为s,且当前在i号城市的最少花费。注意由于原图有可能有环路,因此某个点可能经过不止一次,因此在状态转移的过程中有类似于dijkstra中的松弛操作,即对某一个状态不断更新。 这题另外的解法是原创 2017-08-10 23:23:17 · 336 阅读 · 0 评论 -
HDU - 5816 Hearthstone 状压DP + 组合计数
传送门:HDU5816题意:牌堆里有两种卡牌,使用A牌能从牌堆摸2张牌,使用B牌能对对方造成 b[i] 点伤害。开始的时候从牌堆摸一张牌,问你能对敌方造成p点或以上伤害的概率是多少。 首先要注意计算所有的可能手牌状态,假设抽到过x张A牌,那么手里最多有x+1张B牌,并且当手里有x+1张B牌的时候就无法继续抽牌了(因为这时所有的A牌都应该被用掉了),否则就能继续抽牌。思路1:状压DP,d原创 2017-09-06 18:04:20 · 292 阅读 · 0 评论 -
HDU - 4778 Gems Fight! 记忆化搜索 + 状压
传送门:HDU4778题意:有 G 种颜色的宝石,放在 B 个袋子里,两人轮流选袋子(每个袋子只能被选 1 次),每次将选出来的袋子中的宝石放到 cooker 中,cooker 可能会起反应。反应条件是 cooker 中出现至少 S 个一样颜色的宝石,而且一旦起反应,每 S 个一样颜色的宝石就会获得 1 个魔法石。作为奖励,每次获得魔法石的玩家可以再选一个袋子继续游戏,若未获得魔法石,原创 2017-09-25 23:58:38 · 284 阅读 · 1 评论