[USACO08JAN]Telephone Lines S

Solution

如果没有“免费”这个操作,那么答案一定是最小生成树上 \(1\)\(n\) 的路径。加了这个操作后,我一开始想的是直接找这条路上大的边,然后删掉。后面才发现这样是不对的。类比如果是求和的话,不能直接删掉最短路径树上的边,在这里也不能直接删最小生成树上的边。

代价是权值的最大值,要使其最小化,容易想到二分。对于小于 \(mid\) 的边直接用并查集合并;对于其他边,那就只能考虑使用一次免费操作。所以能建出一个新图,bfs 求最短路即可。然后判一下长度是否小于阈值。

posted @ 2021-08-27 09:26  Kreap  阅读(31)  评论(0编辑  收藏  举报