最短路
芋智波佐助
菜鸟一只
展开
-
TOJ 1837 HDU 1385 ZOJ 1456 Minimum Transport Cost / 最短路径
Minimum Transport Cost时间限制(普通/Java):1000MS/10000MS 运行内存限制:65536KByte 描述These are N cities in Spring country. Between each pair of cities there may be one transportation track or none.原创 2013-08-29 15:16:18 · 1178 阅读 · 0 评论 -
POJ 3259 Wormholes Bellman-Ford找负环
题目来源:POJ 3259 Wormholes题意:某人想回到过去 输入有2中类型的边 一种是正的 并且是双向的 另外一种是负的 是单向的 可以回到过去就输出YES 否则NO思路:和UVa 558差不多 如果存在负环就可以通过这个负环一直无限时光倒流 找负环用SPFA或者Bellman-Ford#include #include #include using namespace原创 2014-04-05 18:32:59 · 1154 阅读 · 0 评论 -
HDU 1839 Delay Constrained Maximum Capacity Path 最短路+二分
题目来源:HDU 1839 Delay Constrained Maximum Capacity Path题意:给你一张无向图 要从1到n运送东西 每条路都有容量限制和经过的时间 选择一条路径该路径最多能运的数量等于容量最少的那条边 并且总时间不能超过T思路:和上一题一样 二分容量 然后做最短路判断是否最短时间小于等于T#include #include #include #in原创 2014-04-04 23:40:59 · 1017 阅读 · 0 评论 -
HDU 2962 Trucking 最短路+二分
题目来源 HDU 2962 题意:给你一张无向图n个点m条边 给出起点s终点e和最大承受的高度 其中每条路都有限制的高度以及该条路的长度 求从s到e最大可以通过的高度和在最大高度的前提下的最短路思路:二分高度再求最短路 无解特判一下#include #include #include #include using namespace std;const int maxn原创 2014-04-04 23:16:25 · 882 阅读 · 0 评论 -
HDU 1535 Invitation Cards 2次Dijkstra来回最短路
题意:从1派学生到2-n这n-1个点 求去并且回来的最短路 就是1到各点的最短路之和和各点到1的最短路之和 给的是有向图思路:对于1到各个点的最短路直接Dijkstra求出无压力 然后各个点到1的最短路可以反向建图后再求一次从1到各个点的最短路对于很多点到一个点的情况可以考虑反向建图 转变成单源最短路#include #include #include #include us原创 2014-04-04 21:23:14 · 1028 阅读 · 0 评论 -
HDU 1317 XYZZY Bellman-Ford求最长路 判断正环
题意:给你n个房间 开始有能量值100 判断能否从1到第n个房间 每到一个房间可以获得能量x(可能小于0) 每到一个房间总能量必须大于0 每个房间可以重复到达思路:求一个从1到n的最长路 不过可能有正环 没有正环 直接求最长路 如果有正环 判断环中的点是否可以到达n具体用Bellman-Ford算法 虽然复杂度是(n*m)这题应该可以了 如果迭代n-1次之后还能松弛 说明有正环 然后原创 2014-04-04 18:50:48 · 1772 阅读 · 0 评论 -
Light OJ 1108 Instant View of Big Bang 求哪些点能到达负环
题目来源:Light OJ 1108 Instant View of Big Bang题意:求哪些点可以回到过去 首先负环的点是可以的 一直在付欢里转即可 然后那些可以走到负环的点满足思路:反向建图 这样负环还是不会变的 只不过负环的方向换了下 原来能到负环的点变成了现在负环能到的点 求出负环标记然后广搜负环能到的点再标记#include #include #include us原创 2014-06-03 17:27:04 · 1404 阅读 · 0 评论 -
Light OJ 1316 A Wedding Party 最短路+状态压缩DP
题目来源:Light OJ 1316 1316 - A Wedding Party题意:和HDU 4284 差不多 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路思路:首先预处理每两点之前的最短路 然后只考虑那些商店 个数小于15嘛 就是TSP问题 状态压缩DP搞一下 状态压缩姿势不对 有必要加强#include #include #include #include原创 2014-07-06 17:32:01 · 1035 阅读 · 0 评论 -
HDU 4085 Peach Blossom Spring 斯坦纳树 状态压缩DP+SPFA
状态压缩dp+spfa解斯坦纳树枚举子树的形态 dp[i][j] = min(dp[i][j], dp[i][k]+dp[i][l]) 其中k和l是对j的一个划分按照边进行松弛 dp[i][j] = min(dp[i][j], dp[i'][j]+w[i][j])其中i和i'之间有边相连#include #include #include using name原创 2014-10-17 11:14:07 · 1237 阅读 · 0 评论 -
HDU 1595 find the longest of the shortest 删掉任意一条边的最长最短路
题目来源:HDU 1595 find the longest of the shortest题意:n个点m条边的无向图 有一条路是不能走的 求从1到n最短路的最大值思路:首先求出最短路 如果坏掉的那条路不在最短路上 那么最短路是不会变大的 所以枚举最短路上的n-1条边 每次把这条路设为正无穷 在做最短路 取最大值一次Dijkstra的最短路的复杂度是mlogn n次最短路的复杂度是nm原创 2014-04-07 13:20:51 · 1153 阅读 · 0 评论 -
HDU 3986 Harry Potter and the Final Battle 删掉任意一条边的最长最短路
题目来源:HDU 3986 Harry Potter and the Final Battle题意:哈利波特要从1到n 不过敌人可以破坏一条边 求最坏的情况下到达n需要的最短时间 不能到达输出-1思路:和上一题差不多 每次枚举最短路上的边 然后去掉该条边在做最短路 因为是无向的 不要忘记把它的反向边也删除 上一题一定有解 这题不一定 如果去掉一条边后无法到达n那么输出-1 因为敌人足够原创 2014-04-07 14:03:47 · 1207 阅读 · 0 评论 -
TOJ 1883 ZOJ 1298 POJ 1135 Domino Effect / Dijkstra
把第一个推倒 求所有多米诺倒下的最短时间 不是每个点上有一个骨牌 是路上都有 每个点只是关键的骨牌 只有一种最优解 先求出1到各点的最短路 求最短路中的最大值 这是一个关键点的情况 在枚举每一条边 u v w 如果(d[u] + d[v] + w) / 2 > max 就更新一下 因为是要求最短路的最大值 这是2个关键点的情况Dijkstra#include #include原创 2014-02-26 12:51:34 · 1154 阅读 · 0 评论 -
TOJ 3018 ZOJ 1655 Transport Goods / dijkstra
Transport Goods 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交: 52 测试通过:13 描述The HERO country is attacked by other country. The intruder is attacking the capital s原创 2013-11-13 18:42:19 · 1217 阅读 · 0 评论 -
TOJ 4279 Barricade / dijkstra
Barricade时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 描述GBQC国一共有N个城市,标号分别为1, 2, …, N。N个城市间一共有M条单向通行的道路。不幸的是,GBQC国的城市1连续暴雨,使得整个城市淹没在汪洋洪水中,于是GBQC国领导人小明决定让城市1的居民暂时移居到城市N,于是一场浩浩荡荡原创 2013-11-04 14:11:52 · 1049 阅读 · 0 评论 -
TOJ 3010 Reverse a Road / dijkstra
Reverse a Road 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 描述Peter resides in the city of Nanuh, and goes to his working place in this city every weekday.He has been totally annoyed原创 2013-10-22 13:18:30 · 1225 阅读 · 0 评论 -
UVa 658 It's not a Bug, it's a Feature! / SPFA
隐式图的最短路径 题目看了老久要修复所有的漏洞 每个补丁需要一定条件才能打(第一个字符串 第i个字符是+ 说明当前状态一定要有第i个漏洞才能装 - 就是一定没有 o可有可无) 打了可能会导入 或者去掉漏洞(第二个字符串)从1111(n个1)开始做SPFA 终点是00000(n个0)都用2进制表示然后是否能使用补丁需要判断 用位运算处理使用补丁后的状态用一个2进制表示#inclu原创 2013-12-15 17:12:00 · 1027 阅读 · 0 评论 -
UVa 558 Wormholes / Bellman-Ford
有个人要回到过去看大爆炸 就判断有没有负环 有负环就possibleBellman-Ford 或者SPFA判断负环#include struct node{ int s; int e; int w;}a[2010];int n,m;int dis[1010];bool BF(){ int i,j,k; int x,y,z; for(i原创 2013-12-11 10:17:09 · 993 阅读 · 0 评论 -
UVa 10986 Sending email / 优先队列优化dijkstra
dijkstra 求最短路 邻接矩阵存不下 换成链表或者vector 用优先队列优化另外据说spfa也可以 有空写一下#include #include #include using namespace std;const int MAX = 20010;struct node{ int end; int dis; bool friend opera原创 2013-12-11 09:26:40 · 1230 阅读 · 0 评论 -
TOJ 3481 Highway Construction / 树的直径+SPFA
首先求出树的直径 然后把直径上的点都放近队列 做一次SPFA 求出最短路 求出最短路的最长路径即可树的直径就是树上最远2点的路径 在直径上建这条路可以是答案尽量小 然后就可以做最短路了还是很弱 比赛看出是树的直径没敢写 这方面练得不够多吧 #include #include #include using namespace std;const int maxn = 100010原创 2014-03-15 20:57:29 · 1087 阅读 · 0 评论 -
UVa 11374 Airport Express / Dijkstra
有2中种类型的路 第二种只能用一条 求出起点到所有点的最短路和终点到所有点的最短路 在枚举每一条路输出3部分打印路径如果用了第二种类型的边 输出边的起点 没用输出Ticket Not Used最短路#include #include #include #include using namespace std;const int maxn = 10510;原创 2014-02-26 18:29:20 · 960 阅读 · 0 评论 -
POj 2449 Remmarguts' Date K短路 A*+SPFA
第一道A*,网上教程一大把就不说了。#include #include #include #include #include using namespace std;const int INF = 999999999;const int maxn = 1010;struct edge{ int u, v, w; int next;原创 2016-07-18 09:03:58 · 424 阅读 · 0 评论