ABC338D 题解
赛时怎么连这题都不会。再不练练思维真的就连普及题都不会做了啊。
Solution
题目来源:ABC338D(in Atcoder | in 洛谷)。
不妨先考虑应该断掉哪条边。首先我们发现,仅断掉一条边并不会让两个结点不可达,只会让我们从一个结点绕更远的路到达目标结点。
如果我们要从结点
记两路径的边数差为
最后只需断掉总代价最小的边即可。答案即为 所走过的最短路径之和 加上 最小代价
断环为链地实现差分和前缀和即可。实现时注意以下几点:
- 开
long long
。打擂台取 时上界不要开小。 - 不要混淆边的编号和点的编号。
本文作者:Running-a-way
本文链接:https://www.cnblogs.com/Running-a-way/p/17993522/sol-abc338d
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步