1 条题解
-
0
自动搬运
来自洛谷,原作者为

ran_qwq
debug 深入思考 只靠样例与自己!搬运于
2025-08-24 22:56:04,当前版本为作者最后更新于2024-03-14 17:01:14,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
删边过程十分地不好搞,考虑先加没被删过的边,再从后往前将删过的边一条一条加回去,在加边的过程中动态维护答案。每次加边合并两棵树 和 。在合并的过程中,树 内任意一点 和树 内任意一点 会连通,答案会和 取 max。但是,直接暴力更新单次就是 的,时间复杂度无法承受。
我们容易发现,有很多点对 都不会对答案产生贡献。具体地,设树 的一条直径为 到 的路径,树 的一条直径为 到 的路径,则合并后的树的直径的端点肯定是 四点之二。
证明(好像其他题解都没说明白):
引理:到任意点距离最远的点必是树的一条直径的端点。
证明:
设一棵树根为 ,直径为 到 的路径,距离 最远的一个节点是 , 到 的 LCA 为 。不妨设 。反证法,如果 :
则 ,将直径中的 换成 一定更优, 到 的路径不是直径,矛盾,原命题成立。
- 如果合并后树的直径在树 内,则一定是 到 的路径。
- 如果合并后树的直径在树 内,则一定是 到 的路径。
- 否则直径经过连接树 和树 的边,由引理,新树直径端点必为 四点之二。
综上,证毕。
用并查集合并,求距离可以用 LCA+树上差分。
- 1
信息
- ID
- 9790
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者