一起加油吧~|

shiranui

园龄:2年7个月粉丝:17关注:12

2023-02-02 19:31阅读: 40评论: 0推荐: 0

[题解] P2685 [TJOI2012]桥 思路整理

题目大意

给一张 n 个点 m 条边的图,求删去一条边后最短路长度的最大值与对应删边方案数。

思路

首先考虑,如果删去的这条边不在原图最短路上,那么新图最短路长度与原图一致。

那么为使最短路长度最大,删去的边一定是原图最短路上的边。

image

如果用黑线表示原图最短路,那么在断掉图中叉掉的边时,新图最短路会长得类似图中蓝线,也就是 1 开始沿着原图最短路走一段 - 离开原图最短路 - 回到原图最短路直到到达 n

对于原图最短路上的边依次考虑删去后的答案似乎不大好算(至少菜菜的我只会删去以后重新跑最短路),考虑每条边 (u,v),用 包含它的最短路 去更新 原图最短路每条边对应的答案(新图最短路长度取min),那么答案就是原图最短路每条边答案的最大值和个数。

回到上图,图中蓝线对应的最短路长度可以表示为 dis1,u+(u,v)+disv,n,也就是(u,v) 会对黑线未被蓝线覆盖的那段中的每条边产生这个贡献

那么为了保证能统计到答案,黑线未被蓝线覆盖的长度肯定要尽可能大,也就是蓝线离开黑线的点要尽可能靠左,回到黑线的点要尽可能靠右

对于每条边 i,记 经过它的最短路 离开 原图最短路 的点为 Li,回到 原图最短路 的点为 RiLR 可以使用 dfs求出。

那么就对于每条边 i(u,v),用 dis1,u+(u,v)+disv,n 在线段树上更新 点 Li 与点 Ri 之间的边 的答案。

本文作者:shiranui

本文链接:https://www.cnblogs.com/shiranui/p/17087206.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   shiranui  阅读(40)  评论(0编辑  收藏  举报
*/
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起