![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路
文章平均质量分 58
别动我的白羊毛
这个作者很懒,什么都没留下…
展开
-
bellman-ford 模板
http://blog.csdn.net/niushuai666/article/details/6791765 Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。 这时候,就需要使用其他的算法来求解最短路径,Bellman-Ford算法就是其中最常用的一个。转载 2017-09-13 15:11:04 · 856 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(A*,K短路)
题目链接:https://nanti.jisuanke.com/t/31445 样例输入 2 2 1 2 2 14 1 2 5 2 1 4 样例输出 yareyaredawa 题意:单向图,问K短路是否小于等于T 思路:模板题,你只需要一个优秀的板子,我的板子不够优秀就T了,队友的板子够优秀,但是他居然Whitesnake!里的W没有大写wa了7发!!!!!!!! #...原创 2018-09-08 18:46:48 · 276 阅读 · 0 评论 -
Emptying the Baltic(类似最短路?)
题目:https://odzkskevi.qnssl.com/da9adfb686ef541a14cec9856721130a?v=1507986802E从排水口(sx,sy)开始,压入优先队列,每次去队头元素,与八个方向上的流量比较,知道队列为空#include<cstdio> #include<cmath> #include<cstring> #includ...原创 2017-10-16 15:22:21 · 340 阅读 · 0 评论 -
hdu2544 最短路
#include #include #include #include #include #define inf 999999999 #define maxn 105 using namespace std; int g[maxn][maxn]; int dist[maxn]; int vis[maxn]; int n,m; void dijkstra(int st){ int i,j,m原创 2017-09-11 14:54:40 · 171 阅读 · 0 评论 -
hdu1217 Arbitrage(Floyd)
#include #include #include #include #include #include using namespace std; double a[1005][1005]; double d[1005][1005]; int n,m; void floyd(){ int i,j; for(i=0;i<n;i++){ for(j=0;j<n;j++){ d[i原创 2017-09-11 18:59:34 · 181 阅读 · 0 评论 -
hdu2112 Today
主要用map将字符串转化为标号就可以直接套个模板了 #include #include #include #include #include #include #define inf 999999999 #define maxn 155 using namespace std; int g[maxn][maxn]; int dist[maxn]; int vis[maxn]; int n,m原创 2017-09-11 16:54:02 · 209 阅读 · 0 评论 -
hdu2066 一个人的旅行(多源多汇)
家为0,家到各个源点的距离看成0,遍历几个汇点,取最小即可 #include #include #include #include #include #define inf 999999999 #define maxn 1005 using namespace std; int g[maxn][maxn]; int dist[maxn]; int vis[maxn]; int t,s,d,n原创 2017-09-11 16:13:27 · 251 阅读 · 0 评论 -
hdu3790 最短路径问题
要求如果最短距离有多条路线,则输出花费最少的。 所以在dijkstra模板基础上,增加一个价值的数组,在路径相同时,比较价值。 #include #include #include #include #include #define inf 999999999 #define maxn 1005 using namespace std; int g[maxn][maxn],c[ma原创 2017-09-11 15:34:35 · 213 阅读 · 0 评论 -
普通dijkstra(邻接矩阵)
#include #include #include #include #include #define inf 999999999 #define maxn 20005 using namespace std; int g[maxn][maxn]; int dist[maxn]; int vis[maxn]; int n,m; void dijkstra(int st){ int i,j原创 2017-09-11 13:12:48 · 295 阅读 · 0 评论 -
hdu1535 Invitation Cards(dijkstra+邻接表)(反向建图)
求的是从1到其余各点的最短距离之和加上各点到1的最短距离之和 如果用Floyd,会超时,所以用dijkstra求一遍,得到1到各点的最短距离,再反向建图,得到各点到1的最短距离 不能用矩阵,会爆掉,所以用了邻接表 #include #include #include #include #include #define inf 999999999 #define maxn 200000原创 2017-09-13 17:37:02 · 243 阅读 · 0 评论 -
hdu1317 XYZZY(floyd、bellman_ford判环)(spfa)
因为有负数,所以不能直接求 #include #include #include #include #include #include #define inf 999999999 using namespace std; struct node{ int from,to; }e[10005]; int a[105][105]; int first[10原创 2017-09-13 14:47:53 · 219 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze(队列优化的dijkstra,dp)
题目链接: Magical Girl Haze 样例输入 1 5 6 1 1 2 2 1 3 4 2 4 3 3 4 1 3 5 6 4 5 2 样例输出 3 题意:n个点,m条边,有重边,最多可以使得k条边权值为0,问从1到n的最短路 思路:dist[i][j]代表走到i这个点,使得j条边权值为0的最短路,用队列优化的dijkstra模板,用num记录当前边权为0的边数,除了常规...原创 2018-09-01 20:20:57 · 219 阅读 · 0 评论