2 条题解
-
1
G
本题首先转化,如果两路径不交(无公共点),则必然可以存在一条边,使得这条边可以分割选择的路径。
不难发现,这很有前途。于是枚举断边 。 是 的父亲。依题,我们只关心选择的路径长度,所以又发现长度大的路径存在,则长度比他小的路径必然存在。故转化成直径问题。
在 的子树中找直径(不必经过 ),在 的连通块中找直径("-" 是差集的意思)。
前者是简单的。重点考虑后者。
你不会以为要 DS 吧。先分类,直径有以下 种情况。
- 过
- 路径 lca 位于 的子树
- 其他情况
第一种情况,容易发现,维护 表示 出发,若第一步走到 父亲,他的最长能走几步?转移时容易的。自证不难。
第二种情况,记录 表示 路径 lca 在 子树的路径长度最大值。转移依旧简单。注意判断防止非法。
第三种情况,维护 表示 子树外,最长的路径,转移仍旧简单。
经过 但不经过 的最长路径。
最后,答案是依旧简单的.
建议降下去 蓝。
我不是红磷!
- 1
信息
- ID
- 2755
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 13
- 已通过
- 4
- 上传者