随笔分类 -  图论---最短路

摘要:传送门 思路:当我们走到一个环时,可以重复绕圈将这个环上的所有蘑菇采完。这启发我们用Tarjan缩点,将整个环的边权缩到一个点上,然后SPFA跑最长路即可。 AC Code: 阅读全文
posted @ 2018-05-26 06:23 dprswdr 阅读(153) 评论(0) 推荐(0)
摘要:-> 题意:有n个点,m条无向边,问从1到n(或从n到1)的一个最长时间t,且满足删除任意一条边后,得到的最短路都小于等于这个时间t。 思路:可以发现只有删除最短路上的边时才会对答案有影响。因此我们枚举最短路上的每一条边,将它们删去后跑最短路,最后取max即为答案。注意删边后图要保证连通。 代码: 阅读全文
posted @ 2018-05-08 19:48 dprswdr 阅读(220) 评论(0) 推荐(0)
摘要:*钟皓曦老师授课* 常见最短路算法: Floyd → O(n^3) //floyd int dist[maxn][maxn]; memset(dist,0x3f,sizeof(dist)); for (int a=1;a<=m;a++) { int s,e,d; cin >> s >> e >> d 阅读全文
posted @ 2018-04-29 23:55 dprswdr 阅读(175) 评论(0) 推荐(0)
摘要:思路:将每个点拆成k个点,形成一个分层图。 最短路为dis[i][j],分别代表“到点i为止免费飞行的次数为j时的最短路是多少”。 其中不免费飞行的转移为dis[v][cnt]=dis[u][cnt]+e[i].w,免费飞行的转移为dis[v][cnt+1]=dis[u][cnt]。 最后比较一下免 阅读全文
posted @ 2018-04-21 16:11 dprswdr 阅读(232) 评论(0) 推荐(0)