摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4284思路:类似于poj3311:http://poj.org/problem?id=3311,首先floyd预处理出两点之间的最短距离,然后就是枚举所有的状态了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 111 7 #define inf 0x3f3f3f3f 8 9 int map[MAXN][MAXN];10 int dp[1=0)dp[(1=0){62 ... 阅读全文
posted @ 2013-08-29 20:27 ihge2k 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001思路:这道题类似于TSP问题,只不过题目中说明每个城市至少要走一次,至多走2次,因此要用到三进制压缩,然后就是状态转移方程了:dp[i+State[k]]=min(dp[i+State[k]],dp[i][j]+map[j][k]); 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define inf 0x3f3f3f3f 7 int State[12]; 8 int visited[60000][1 阅读全文
posted @ 2013-08-29 19:13 ihge2k 阅读(908) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4568思路:先用spfa预处理出宝藏与宝藏之间的最短距离,宝藏到边界的最短距离,然后就是经典的求TSP过程了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 222 8 #define inf 1 >que; 29 que.push(make_pair(point[num].x,point[num].y)); 30 if(dist... 阅读全文
posted @ 2013-08-29 17:05 ihge2k 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4067思路:很神奇的建图,参考大牛的:如果人为添加t->s的边,那么图中所有顶点要满足的条件都是一样的了,我们以此为目的来建图。对于每条边,我们只有两种操作,要么保留要么删除,那么先假设两种操作都能满足条件,我们就可以选择花费小的操作来执行,最后再根据实际情况调整。首先不加入任何边,在添加或删除(不加入)边的过程中,对每个顶点v记录in[v]为其当前入度,out[v]为其出度,sum为当前的总花费。那么对于每条边,如果au,流量1,费用为b-a(如果删除这条边的费用)如果bv,流量1,费用为a 阅读全文
posted @ 2013-08-29 12:38 ihge2k 阅读(898) 评论(0) 推荐(0) 编辑