摘要: 最短路 + 记忆化搜索dfs科普一下 spfahttp://hi.baidu.com/qw4365/item/f9a4fa3077224df4a9842809View Code #include <stdio.h>#include <string.h>#include <algorithm>using std::sort;const int INF = (1<<30)-1, MAXN = 1005;bool set[MAXN];int dis[MAXN], n, m, r[MAXN][MAXN], cnt, count[MAXN];struct 阅读全文
posted @ 2013-03-10 14:11 April_Tsui 阅读(140) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2066还是多点dijkstra 这里要注意出发城市和到达城市 有可能不在n m里例如 n=2, m=3 这只表明有几个城市 但是有可能城市标号为10.故对于每个case 要计算出一个big,他为出发城市和到达城市 标号最大的如果标号很大 但是城市个数相对较小 可以使用离散化方法这题很坑爹 题意应该是单向边 居然是双向的=-=View Code #include <stdio.h>#include <string.h>#include <queue>using namespa 阅读全文
posted @ 2013-03-10 12:20 April_Tsui 阅读(135) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2433题意:给出边建立图 然后依次删除给出的边,求最短路,如无法连通 则返回INF这里最短路 = 多源最短路和 即求出对于单源最短路 再for一个循环求出多源最短路 相加用dijkstra 复杂度为V*(E+V),由于这里很特殊 每条路长度都是1 故可以使用bfs 最先搜到的节点一定是最短的bfs 时间复杂度 E , 但如果每次拆路都对所有节点重新求最短路 复杂度则是 E*V*E 还多个case 可能不过这里可以使用used[x][u][v] 来记录对于以x为源点的树 是否使用town[u][v] 这条路 若 阅读全文
posted @ 2013-03-10 10:13 April_Tsui 阅读(948) 评论(0) 推荐(0) 编辑