DP-状压
文章平均质量分 54
KIJamesQi
这个作者很懒,什么都没留下…
展开
-
lightoj1021- Painful Bases
题目链接:http://lightoj.com/volume_showproblem.php?problem=1021 求一个base进制下的合法数字s的组合当中能够整除k的个数。 开始是暴利去做的,以为枚举后面几个数就好了,前面的只需要排列数,结果wa了,其实最要是这个本身我也觉得存在问题,所以就没在纠结,只是碰运气的。 然后,base dp[i][j],i是状态,j是这个状态的数模k原创 2016-01-22 16:22:15 · 386 阅读 · 0 评论 -
lightoj 1316 - A Wedding Party
题目链接:http://lightoj.com/volume_showproblem.php?problem=1316 分析分析:大意就是一个人要从0点走到n-1点,路中有些点有商店可以买礼物,所以这个人想买多点礼物,但是又要尽快的走到n-1点,这两者之间呢,礼物的多少优先,其次是路程长度。 s 所以dp[statu][i]statu状态走完后停留在第i个商店,位置时shop[i]。然后转原创 2016-01-25 17:43:14 · 607 阅读 · 0 评论 -
Painting A Board(状压dp)
题目大意 在一个二维图中有n*2个人,分别在不同的位置。现在需要进行两两配对,dis[i][j]表示这两个人之间的直线距离,问最小的配对距离和。 最小配对距离:指的是所有相互配对的两人之间的距离和。思路:因为只有20个人,所以可以用状压dp来做。 dp[sta] = min(dp[sta], solve(sta ^ (1< int nCase = 0; const int maxn = 6666原创 2016-05-08 16:45:20 · 405 阅读 · 0 评论 -
Gym 100543A Parades
题目链接 一颗有n个点的树,然后上面有m条关系链[u, v](就是u到v的路径),选出x条链,相互没有边重合,但是点是可以重合的。求x的最大值。 思路:树形dp+状压dp。 对于以u为根的子树,dp[u]表示这棵子树能有的最大x的值(也就是被选中的x条链满足题目条件且每条链的所有边都在子树中,不经过[fa, u])。 第一部分就是dp[u] = ∑dp[v] && v is a原创 2016-09-24 22:13:50 · 528 阅读 · 0 评论 -
lightoj1037 状压DP(入门级)
题意 简单 思路 dp[sta]表示状态为sta时需要打的最少次数,dp[0] = 0; /***************************************** Author :Crazy_AC(JamesQi) Time :2016 File Name : *****************************************/ //原创 2017-02-05 23:29:20 · 364 阅读 · 0 评论 -
LightOJ 1061 N Queen Again(搜索+状压DP)
题目 给出一张8*8的图,上面有8个皇后,现在每次只能移动一个皇后往同一个方向走任意步,总共有8个方向;问最少需要多少步使得所有皇后相互不会攻击对方? 思路 单纯的暴搜是不行的,时空都会炸。 假如我们知道最终每个皇后应该在的位置,然后再来计算最少步数就会简单不少,这里可以用状压来做; 因为最终的情况是每行有一个皇后,所以我没需要记录每行皇后所在的列,然后枚举哪个皇后移动到这个位置原创 2017-02-17 19:02:29 · 598 阅读 · 0 评论 -
LightOJ 1057 Collecting Gold(状压DP)
题目 n∗m,(n,m)<(20,20)n*m,(n,m) < (20,20)的格子图上有一个人,和不超过15个的金矿;求这个人从当前位置出发获取所有金矿然后再回到这个位置需要走的最少路程?每次只能往邻近的四个方向走; 思路 因为没有障碍物,所以算两个格子间的距离很方便; 开始用的穷举所有的获取金矿的先后顺序,然后TLE了; 最后就状压过了,dp[sta][i]表示达到状态sta原创 2017-02-14 15:25:21 · 505 阅读 · 0 评论