好难的一道题。 题意:一个机器人要逃出监狱,每走一步消耗一点电量,初始时电量是满的。给一个n*m(n,m<=15)的字符数组代表监狱,F代表起始点,G代表补充满电量,每个G只能补充一次,Y代表开关,D不能经过,S表示空地。要求打开所有开关,也就是经过所有Y点,电池的满电量最少是多少。如果不能逃出输出
分类:
其他好文 时间:
2016-01-28 13:53:16
阅读次数:
229
经典TSP变形学到:1、floyd O(n^3)处理随意两点的最短路 2、集合的位表示,我会在最后的总结出写出。注意写代码之前一定设计好位的状态。本题中,第0位到第n位分别代表第i个城市,1是已经走过,0没走过那么DP方程 :dp[s][i]--当前在城市i。状态为s(s存储的是走过了那些城市) ....
分类:
其他好文 时间:
2016-01-08 18:36:41
阅读次数:
136
#include#define REP(i,a,b) for(int i=a;i>m>>n){ if(m==0) break; REP(i,1,m) REP(j,1,n) scanf("%d",&a[j][i]); /* REP(i,1,m){...
分类:
其他好文 时间:
2015-12-21 17:52:05
阅读次数:
140
挺基础挺经典的状压DP,叫TSP来着? 1 //#include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define inc(i,l,r) for(int i=l;i=r;i--) 9 #define link(x) fo...
分类:
其他好文 时间:
2015-12-18 22:33:59
阅读次数:
217
主题:uva 116 Unidirectional TSP意甲冠军:给定一个矩阵,当前格儿童值三个方向回格最小值和当前的和,就第一列的最小值并打印路径(同样则去字典序最小的)、分析:刚開始想错了,从前往后走,这种话没有办法控制字典序最小,用dfs标记了一下超时了。事实上从后往前走就好了。以后一定先想...
分类:
其他好文 时间:
2015-12-13 20:11:16
阅读次数:
138
这道题可以转化为TSP问题, 预处理各个顶点之间的最短路即可。 其中dp[s][j]表示已经访问过s个顶点, 最后访问的一个城市编号为j,代码如下: #include #include #include using namespace std;const int inf = 0x3f3f3f3...
分类:
其他好文 时间:
2015-12-10 19:27:53
阅读次数:
156
做这道题感觉异常激动,因为在下第一次接触拓扑排序啊= =,而且看了看解释,猛然又发现了可以用DP优化,然后一次A掉所有样例,整个人激动坏了,哇咔咔咔咔咔咔咔~ 咔咔~哎呀,笑岔了- -||
分类:
编程语言 时间:
2015-11-25 15:05:31
阅读次数:
736
题目传送门题意:从某个点出发,所有点都走过且最多走两次,问最小花费分析:数据量这么小应该是状压题,旅行商TSP的变形。dp[st][i]表示状态st,在i点时的最小花费,用三进制状压。以后任意进制状压都会了。#include using namespace std;const int INF = 0...
分类:
其他好文 时间:
2015-11-22 18:39:37
阅读次数:
142
主题连接:??id=3311">http://poj.org/problem?id=3311题目大意:有n+1个点,给出点0~n的每两个点之间的距离,求这个图上TSP问题的最小解思路:用二进制数来表示訪问过的城市集合。f[{S}][j]=已经訪问过的城市集合为S,訪问了j个城市。所需的最少花费。这里...
分类:
其他好文 时间:
2015-10-13 22:27:36
阅读次数:
266
题意: 每个点都可以走多次的TSP问题:有n个点(n 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define pii pair11 #defi...
分类:
其他好文 时间:
2015-10-07 17:26:47
阅读次数:
191