状压
文章平均质量分 78
wjw1340
这个作者很懒,什么都没留下…
展开
-
CodeForces8C Looking for Order【状压】
题意:有n个物品,要搬回起点,每次出去能搬两个回来,耗时 = 两点距离的平方,求最少耗时。思路:状压,选一个点更新下(回去),接着再选一个点(拿回这两个)更新。dp[en]就是最后的答案,不过直接这样会超时,这些点哪组先拿都一样,所以只要更新一组的最优情况就进行下一组,上面选第二个点的循环结束后就跳出第一个点的循环。#include#include#include原创 2017-07-31 10:47:59 · 198 阅读 · 0 评论 -
HDU3681 Prison Break【状压】
题意:给一张图,机器人从F出发,关闭所有Y,问它的最小电池储量,图中G可以把电池充满思路:把图中的F和G、Y拿出来用作状压DP的点,点之间最短距离跑下bfs。二分答案,用状压DP判断下这个储量能不能完成任务,若F点不能到达所有Y就输出-1#include#include#include#include#include#include#include#inc原创 2017-08-09 16:39:02 · 302 阅读 · 0 评论 -
HDU2729 Time to Graduate【状压】
题意:修课,问最少几个学期修完,有些课要修完别的才能学,一些课只能秋天学、春天学,或两学期都能学思路:这类先后关系的题,应属于拓扑排序,这有点复杂,不好搞。于是用状压DP,dp[i][s],第i学期已经修的,去推第i+1学期的状态,dp[i][s] = 1,代表第i天能到达这个状态。求dp[i][en] = 1,最小的i。对于下学期能修的课(最多m门),暴力深搜下,数据不是很大。原创 2017-08-02 20:10:13 · 285 阅读 · 0 评论 -
Light1406 Assassin`s Creed【状压】
题意:有一张有向图,一个刺客不能走别的刺客走过的点(能多次经过自己走过的点),问最少需要几名刺客,才能把每个点的目标干掉思路:很容易想到,一个环,走一圈回到起点,相当于一个点,SCC缩点后,求最小路径覆盖,但我们发现第二个样例,它把一个连通集拆开了。那么我们状压DP每一个子图,每个子图用上面的方法,求一遍最小路径覆盖。最后每个大的状态,可以有两个小的状态的值相加,取最小值#原创 2017-09-01 16:09:58 · 214 阅读 · 0 评论 -
HDU3091 Necklace 【状压】
题意:有许多珠子,能和别的相邻,求哈密顿回路的方案数思路:n不大,考虑状压DP,dp[s][i],表示到s状态时,i在最后一个。从任意一个点开始,递推到s包含所有点,最后答案累加时,判断结尾和你选定的起点是否相连#include#include#include#include#include#include#include#include#include#原创 2017-08-09 08:48:59 · 265 阅读 · 0 评论