随笔分类 - 图论--最短路
摘要:地址:https://www.acwing.com/problem/content/854/ 解析: 引入cnt[i]数组,表示到达当前这个点最短路的边数。 对于一个正常的正权图而言,每个点最多被更新n-1次,只会有n-1条边。 如果到达某个点,最短路边数>=n,那么,说明有重复点,至少n+1个点,
阅读全文
摘要:一:Bellman_Ford 1:Dijkstra并不能解决带有负权边的图。 而Bellman_Ford算法可以。 2:核心代码: for(int i=1;i<=n-1;i++) { for(int j=1;j<=m;j++) { dis[v[j]]=min(dis[v[j]],backup[u[j
阅读全文
摘要:地址:https://www.luogu.com.cn/problem/P3385 解析: 直接Bellman_ford,然后再遍历一遍,如果还能松弛,那么就说明有负权回路。 但是题里问的是顶点1能到达的负环,所以如果有负权回路但是1不能到,依然是NO 后台是有这么个样例: 3 3 2 3 -1 3
阅读全文
摘要:地址:https://www.acwing.com/problem/content/855/ 解析: 图里含有负权边,所以考虑Bellman_ford算法。 Bellman_ford就是从局部扩展到全局,得的是局部最优解,与Dijkstra有着很大不同。 本题要求最多经过k条边到n点的最短距离,那么
阅读全文
摘要:来自y总: 1:Floyd 三个for,枚举每一个点当做中转点对两点之间的距离进行松弛。其实就是个动态规划 #include<iostream> #include<cstring> #include<cstdio> #include<bitset> #include<queue> using nam
阅读全文

浙公网安备 33010602011771号