首页 > 其他 > 详细

题解 P5683 【[CSPJX2019]道路拆除】

时间:2020-11-08 16:56:22      阅读:30      评论:0      收藏:0      [点我收藏+]

9月月赛做了雷雨这道题,发现两题从本质上看是相同的,不过那道是点权,这道是边权。

要使得拆除的路径最多,所以我们要保留的路径就要最少,这是第一个转换。

可以发现的是,若从 1 号城市寻找到 \(s_1\)\(s_2\) 的路径,我们很难去处理可能会出现的重边,这是不妨逆向思维,在图中找一中间点,使得该中间点到 \(1,s_1,s_2\) 的距离最短,这样就可以避免上述的问题,这是第二个转换。

综上,我们只需要分别对三个端点作一次 Dijkstra 运算,求得图上所有的点到这三个端点的最短路,再 \(n^2\) 枚举所有的点到这三个端点的最短路,取一个答案的最小值即可。别忘了条件的判断。

呃呃,讲得已经够详细了,代码太过冗长就不贴了吧。

题解 P5683 【[CSPJX2019]道路拆除】

原文:https://www.cnblogs.com/Niuwadiandian/p/13944657.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!