分层图总结
Posted luyiming的小屋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分层图总结相关的知识,希望对你有一定的参考价值。
分层图
分层图主要就是通过将图分为几层,每层内部都有边,然后各层之间也有边,用于解决对边权进行操作且操作数少的题目。
Example
给一个无向图,求\\(1 \\to n\\)的最短路径,其中可以选择不超过\\(k\\)条边让边的边权变为一半。 \\(n \\le 50,m \\le 1000,k \\le 50\\)。
考虑建立\\(0,1,2,\\cdots,k\\)层共\\(k + 1\\)层图。定义\\(P(x,y)\\)为第\\(y\\)层的点\\(x\\)。每层内部都按照原图连边,然后考虑边\\((u,v) \\in E\\),对于第\\(i\\)和\\(i + 1\\)层(\\(i + 1 \\le k\\)),连无向边\\(P(u,i) \\to P(v,i + 1)\\)和\\(P(v,i) \\to P(u,i + 1)\\),边权为\\(w / 2\\)。然后跑一遍最短路,答案为\\(\\min_{i = 0} ^ k \\{dis_{P(n,i)}\\}\\).
如果用pq优化的Dijkstra实现,时间复杂度为\\(\\mathcal{O}(mk + mk \\log{mk})\\)。
Problem
- P4822 [BJWC2012]冻结
就是上面的例子。 - P4568 [JLOI2011]飞行路线
一个套路。 - 某模拟赛题/某CF题
一个无向图,求\\(S \\to T\\)的最短路,一条路径的长度定义为路径上的边权和减去最大边权加上最小边权。
发现其实就是\\(\\sum_{w \\neq w_{\\max},w \\neq w_{\\min}} w + 2 \\cdot w_{\\max}\\)
跑分层图即可。
以上是关于分层图总结的主要内容,如果未能解决你的问题,请参考以下文章