分层图最短(长)路

1. 用途:用于求解一些有特定要求的最短路和最长路问题,如可以经过任意选择的某点几次,或者说任意选择某条路可以路径减半,或者说某条路可以逆行.....类似的看起来很动态的要求

 看到这种题千万不要想不开去写dp,分层图是一个很好的思路。

 但是多半这种题就有那么一点儿板

2.方法:对于每一种神奇的要求,我们建立要求个新图,并与原图上下平行、完全一致。在每一层图与图之间连边,相对应平行的点连0边,有关系的上下两层的点按照神奇要求连边(我语文不好

从第一层起点开始跑最短路到最后一层的终点,然后...就没啦?

原文地址:https://www.cnblogs.com/kylara/p/9886523.html

时间: 2024-11-10 07:05:26

分层图最短(长)路的相关文章

【分层图最长路,spfa】P1073 最优贸易

1 #include<iostream> 2 #include<string> 3 #include<queue> 4 #include<stack> 5 #include<vector> 6 #include<map> 7 #include<cstdio> 8 #include<cstdlib> 9 #include<algorithm> 10 #include<set> 11 #in

P2939 [USACO09FEB]改造路[分层图最短路]

题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 速公路.在高速公路上的通行几乎是瞬间完成的,所以高速公路的通行时间为0. 请帮助约翰决定对哪些小径进行升级,使他每天从1号牧场到第N号牧场所花的时间最短 解析 提高练习场看到这题,瞄一眼,诶,这不是分层图裸题吗??? [啥是分层图] 分层图,简单来说,就是把一张图复制多次,分为多份,每层图代表一种

HDU 3249 Test for job (有向无环图上的最长路,DP)

 解题思路: 求有向无环图上的最长路,简单的动态规划 #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <algorithm> #include <vector> #include <cmath> #define LL long long using namespace std; const int

Bzoj 2834: 回家的路 dijkstra,堆优化,分层图,最短路

2834: 回家的路 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 62  Solved: 38[Submit][Status][Discuss] Description Input Output Sample Input 2 1 1 2 1 1 2 2 Sample Output 5 HINT N<=20000,M<=100000 Source dijkstra+堆优化+分层图 把所有的横向和纵向分开看.跑最短路即可. 注意:N这么大,不能写

POJ 3592--Instantaneous Transference【SCC缩点新建图 &amp;amp;&amp;amp; SPFA求最长路 &amp;amp;&amp;amp; 经典】

Instantaneous Transference Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 6177   Accepted: 1383 Description It was long ago when we played the game Red Alert. There is a magic function for the game objects which is called instantaneous

ZOJ3795 Grouping 强连通缩点+图的最长路

给出m条a年龄大于等于b的信息,要求可以比较的两个人不能放在同一组,问最少能分成几组. 由于是大于等于,所以原图可能构成强连通分量,意思就是有很多人年龄相同(想想也该知道,总共10w个人,肯定有很多人年龄重复= =!)将原图缩点后,对新图记忆化搜索求最长路. 如果不缩点,会RE... #include <iostream> #include<cstring> #include<cstdio> #include<string> #include<algo

POJ 3592--Instantaneous Transference【SCC缩点新建图 &amp;&amp; SPFA求最长路 &amp;&amp; 经典】

Instantaneous Transference Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 6177   Accepted: 1383 Description It was long ago when we played the game Red Alert. There is a magic function for the game objects which is called instantaneous

USACO09FEB 改造路Revamping Trails(分层图模板)

满分做法: 因为\(k\)很小,所以把每个点拆出\(k\)个点,对应使了多少个高速,这个就是分层图了. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<cmath> using namespace std; typedef long long ll; const int maxm=300

P1266 速度限制(分层图spfa)

P1266 速度限制 题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线.开车时每条道路的限速成为最关键的问题.不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快.一种可以辩解的解决方案是,按照原来的速度行驶.你的任务是计算两地间的最快路线. 你将获得一份现代化城市的道路交通信息.为了使问题简化,地图只包括路口和道路.每条道路是有向的,只连接了两条道路,并且最多只有一块限速标志,位于路的起点.两地A和B,最多只有一条道路从A连接到B.你可以假设加速能够在瞬间完