【题解】树网的核

Core树网的核

ECC(F) 一定和直径的两个端点有关。因为任意节点 x 的最远点一定是两个端点之一。

不妨设直径上的点 x 到直径两端的距离的较小值为 f_x , x 到非直径点的最大距离为 g_x。那么 f_x>=g_x,否则和直径的最大性矛盾。

现在我们对每个直径上的节点求出 g_x。容易发现两端点的贡献就是到左右端点的距离。然后发现,路径两端的节点l,r的贡献一定大于 g_x,x 不在路径上。

注意对于路径中间的节点t,有可能 g_t>max(f_l,f_r),因为 g_t<=f_t,f_t可能比两个端点大。

那么记录一个全局变量 res,每次取 res 和 l,r 贡献的最大值即可。

时间复杂度 O(n)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值