
最短路
文章平均质量分 78
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 4460 Friend Chains # 最短路的最大值
题意,求最短路的最大值 这题理解题意后第一个想到的就是Floyd,超时 看了题解后并与g佬讨论,现整理如下: 这道题由于图中的每一条边长度都为1 , 所以不会出现有两条边之和小于另一条边的情况,所以应该用BFS,即搜到某一情况时,该边的长度就已经是最小值了,(搜索第一层就是长度为1的,第二层就是长度为2的....),所以元素只入队一次,再在每个点BFS一遍,当然BFS后有距离是INF原创 2017-09-15 17:17:19 · 453 阅读 · 0 评论 -
hdu 1688 / poj 3463 #最短路个数
最短路使用spfa 判断次短路开二维数组存储判断,注意队列存储的是pair 第二个是对次短的标注,同时,vis(inq) , dist , num , 都要开二维 由于题目说一定存在一条路,所以一定不存在负环,可以不开cnt数组判断。 最后一定注意要判断dist[I][0]是否等于INF,如果等于,一定不能把他赋值给次短路dist[I][1] !!! #include #inclu原创 2017-09-08 09:52:44 · 347 阅读 · 0 评论 -
hdu 1217 # 最短路
题意是是否存在一个从自己出发再回到自己且值大于一的环 , 用Floyd 即可。 can you hear me ? #include #include #include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f double g[50][50] ; map原创 2017-09-08 20:25:34 · 261 阅读 · 0 评论 -
codeforce 543 B 最短路
预处理所有最短路。 然后暴力所有区间,check是否满足条件然后进行松弛操作 #include using namespace std ; typedef long long ll ; const int inf = 0x3f3f3f3f ; const int maxn = 3050 ; struct edge{ int u , v ; int w ; }; vector原创 2017-10-27 20:18:28 · 491 阅读 · 0 评论 -
同余最短路
第一个是判断 给你 n 个数,问a 是否能由求和求到,求出每一个数%最小的数的最小出现值,比较大小即可,用最短路建图 #include using namespace std; typedef long long ll ; const int INF = 0x3f3f3f3f ; ll save[5050] ; ll dis[50050] ; ll point , road , mod ;原创 2017-10-27 20:21:51 · 711 阅读 · 0 评论 -
codeforce 449 B 最短路
codeforce 449 B 题意: 一个无向图,给你两种边,一种边可以删除(全部从起点出发),问在不改变原来所有点最短路的情况下,能删最多多少条边。 解: 由于可删边都从起点出发,松弛时候也不会返回起点,所以只需要建立从起点到另一点的单向边,然后进行一遍spfa,初始所有点的最短路的值, 然后判断所有可删边,如果该边长比最短路的值长即可删,如果相等,再对到达的点进行判断,看能否由原创 2017-10-29 00:09:03 · 474 阅读 · 0 评论 -
计算客 - 热爱工作的蒜蒜 - spfa
只有100个点,最短路预处理所有 i 到 j 的最短路,松弛操作时同时更新在最短路条件下该段路经过的避雨路段数(即路长) 。 然后暴力所有区间,O(n2)判断是否起点+该区间+到终点的路长小于 要求 p = dis[1][i] + dis[i][j] + dis[j][n] ; q = num[1][i] + num[i][j] + num原创 2017-10-25 10:17:27 · 645 阅读 · 2 评论