6538. 【2020.04.04模拟】Delegation 2

Description

Farmer John 的农场由 N 块草地(1≤N≤10^5)和 N−1 条道路组成,满足每块草地都能从任意其他草地到达。也就是说,这个农场组成一棵树。但在与不可避免地由树而生的麻烦的算法问题打了 28 年交道之后,FJ 终于认为树形的农场太复杂了。他相信在链上的算法问题更简单。
所以,他的计划是将这些道路划分成若干条链,并将每条链交给他值得信任的农场工人之一负责。他不关心链的数量。然而,他希望确保这些链都尽可能长,从而不会有农场工人能够用一个渐近效率低下的算法蒙混过关!
 
帮助 Farmer John 求出最大正整数 K,使得道路可以被划分为一些长度至少为 K 的链。
 
测试点性质:
在测试点 2-4 中树组成了一个 “星形”;至多一个结点的度大于二。
测试点 5-8 满足 N≤10^3。
测试点 9-15 没有额外限制。

Input

第一行包含一个整数 N。
以下 N−1 行每行包含两个空格分隔的整数 a 和 b,表示结点 a 与 b 之间有一条边。a 和 b 均在范围 1…N 内。

Output

输出 K。

Sample Input

8
1 2
1 3
1 4
4 5
1 6
6 7
7 8

Sample Output

3
一种可能的划分方式如下:
 
2−1−6−7−8,3−1−4−5

Solutoin

贪心+二分。

首先二分答案。

设f[i]表示以i为根的子树内,链的长度都大于等于当前mid(即子树内满足题意),从i开始往下延伸的最长的链的长度。

但是并不保证i一定要有值,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值