如果是树,那么一定选择树的直径的中点 套了个环?裸的想法显然是断开环,然后求所有树的直径的最小值 环套树dp的一般思路,先把环放到根,把环上点下面的子树dp出来,然后再处理环上的情况 设f[i]表示以i为根的子树向下延伸的最长链长度 我们把环上的点扩展一倍,用前缀和维护环上的边权 依次枚举断点,则对直径影响就是max(s[j]-s[i]+f[i]+f[j]) 分别维护max(s[j]+f[j])和max(f[i]-s[i]) 注意i≠j,所以我们还要维护一个次小值 type node=recor…