06 2017 档案
HDU 3001 Travelling (状压DP + BFS)
摘要:题意:有一个人要去旅游,他想要逛遍所有的城市,但是同一个城市又不想逛超过2次。现在给出城市之间的来往路费,他可以选择任意一个点为起点。 问逛遍所有城市的最低路费是多少。 析:用三进制表示每个城市的访问次数,然后 bfs 进行遍历,不过要注意这个题卡内存,必须要去年一些无用的状态,要不然会超内存的,还
阅读全文
POJ 3411 Paid Roads (状态压缩+BFS)
摘要:题意:有n座城市和m(1<=n,m<=10)条路。现在要从城市1到城市n。有些路是要收费的,从a城市到b城市,如果之前到过c城市,那么只要付P的钱, 如果没有去过就付R的钱。求的是最少要花多少钱。 析:BFS,然后由于走的路线不同,甚至边或者点都可能多走,所以用状态压缩。然后本题有坑啊,有重连,而且
阅读全文
POJ 1795 DNA Laboratory (贪心+状压DP)
摘要:题意:给定 n 个 字符串,让你构造出一个最短,字典序最小的字符串,包括这 n 个字符串。 析:首先使用状压DP,是很容易看出来的,dp[s][i] 表示已经满足 s 集合的字符串以 第 i 个字符串结尾,他很容易就求得最短长度,但是这个字符串怎么构造呢, 由于要字典序最小,所以就不好搞了,挺麻烦的
阅读全文
POJ 2836 Rectangular Covering (状压DP)
摘要:题意:平面上有 n (2 ≤ n ≤ 15) 个点,现用平行于坐标轴的矩形去覆盖所有点,每个矩形至少盖两个点,矩形面积不可为0,求这些矩形的最小面积。 析:先预处理所有的矩形,然后dp[s] 表示 状态 s 时,最少需要的面积是多少。 代码如下:
阅读全文
浙公网安备 33010602011771号