分层图
分层图
引入
我们发现,在某些最短路问题中,并不只有一种性质的边,或者说允许改变一些边权。为了处理这样的问题, 分层图建模思想 应运而生。
构建
对于这样的问题,我们考虑根据边的不同性质分别建图,在图的内部则是一些普通边,在图与图之间连上那些 “特殊的性质边”,换句话说,就是将 决策前的状态 和 决策后的状态 之间连接一条 权值为决策代价 的边,表示付出该代价后就可以进行此步状态转移 。
决策,就是分层图的构图依据。
具体的实现有两种:
数组 | 建边 | 特点 | |
---|---|---|---|
方式一:物理构图 | 图内,图间 | 第 |
|
方式二:DP构图 | 只有图内,图间由dp决策代替 |
例题
经典题,
按 最短路的奇偶性 来建分层图。本题充分体现了分层图 “拆点” 的思想。
关键是寻找分层依据。发现发车间隔
- 若
, 没办法走。但其实如果在起点多等待几轮就可以通过了。设在多等的时间 ,因此真正的时间 。 - 若
,直接走就行。
怎么用
- 若
, 有转移 。 - 若
,有转移 。
边界条件:
答案:
总结
个人更喜欢 DP建图, 因为它更突出了 “最短路算法本质是
分层图体现了一种 “拆点” 思想。
参考博客
关于分层图(学了你不吃亏,学了你不上当 雾) - AcWing
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】