最短路
文章平均质量分 77
Lazines_by
好吧,我要工作了
展开
-
SPFA
SPFA算法——最短路径 转载自http://www.cnblogs.com/scau20110726/archive/2012/11/18/2776124.html是一种求单源最短路的算法算法中需要用到的主要变量int n; //表示n个点,从1到n标号int s,t; //s为源点,t为终点int d[N]; //d转载 2017-05-12 14:07:49 · 273 阅读 · 0 评论 -
SPFA算法学习
转载自http://www.cnblogs.com/scau20110726/archive/2012/11/18/2776124.html粗略讲讲SPFA算法的原理,SPFA算法是1994年西南交通大学段凡丁提出是一种求单源最短路的算法算法中需要用到的主要变量int n; //表示n个点,从1到n标号int s,t; //s为源点,t为终点in转载 2017-04-23 18:55:21 · 230 阅读 · 0 评论 -
hdu 6026 用nlogn的dijstra敲一发
题意:给出一个图,要求删除一些边,然后使得删除后的图是一颗树,并且各个点到0点的距离为原来图中的最短距离:思路:先求出零点到各个点的最短距离,然后对各个点进行枚举,计算它的临点到他的距离为它本身的最短距离数目,然后相乘;论证:每个点的最短距离已确定,如果有多条路径到达这个点是他的最短距离的话,那么说明能够保留这些边的任何一条就行,所以有这些数目,然后进行相乘就是最终的结果;原创 2017-05-09 13:30:39 · 865 阅读 · 0 评论 -
hdu5521(集合的dijstra)
题目大意:有N个点,两个人,其中一个人住在点1,另一个人住在点n 有M个点集,集合内的数表示任意两点的距离为dis 现在问,如果两个人要见面,需要最短距离是多少,有哪几个点能被当成见面点解题思路:分别对两个点进行最短路,但是不能直接最短路,这里有一个问题是,边太多了 其实也不会很多,每个点集只能被松弛一次,因为里面所有的点已经是最短的状态了,理解这个就可以做了Code:原创 2017-07-13 21:22:33 · 462 阅读 · 0 评论 -
poj3255次短路
题意:求出1 -> n的次短路;思路:1.可以跑两遍最短路,从1 -> n 和 n -> 1,因为次短路肯定是替换最短路上的一条边后形成的,所以之后直接枚举每条边替换就行了。2.在dijkstra的时候同时更新最短和次短,比较巧妙。PS:两种思路在有向图中同样适用,不过思路一在跑n - > 1的时候要建反向图。Code1:#include#原创 2017-07-15 09:45:55 · 659 阅读 · 0 评论 -
多校第四场1005(hdu6071)dijkstra
题意:给出四边形的无向图,标号分别为0,1,2,3,然后从1出发最后回到1,路可以重复走多次,求使得走的路程>= k的最小值。思路:怎么也不会想到是最短路,不过涨知识了。下面思路转载自:http://blog.csdn.net/u013534123/article/details/76651821题目要求是只有四个点,然后连边成正方形,问从2号点出发,再回到2号点且走过的总距离大于K的原创 2017-08-05 09:48:14 · 285 阅读 · 0 评论 -
hdu6201(spfa)
题意:给你一棵树, 树上有点权, 要求选择起点S和终点T, 要求T-S-sum 最大, sum为S到T的边权。思路:根据题意就可以建图建立源点和汇点。源点连所有的树上点, 边权为 a[i], 所有树上点在连接 汇点, 边权为-a[i]. 然后在根据树建图。 spfa跑个最长路即可。#includeusing namespace std;typedef l原创 2017-09-12 19:20:34 · 371 阅读 · 0 评论