【题目背景】
『是我,是我先,明明都是我先来的……接吻也好,拥抱也好,还是喜欢上那家伙也
好。』
【题目描述】
给出一个 n 个点的树。
定义树上两点之间的距离为两点间简单路径包含的边数。
我们称一个点集 s 是 k 距离近似的,当且仅当其中任两个不同的点之间的距离为 k 或 k + 1。
请对于 k = 1, . . . , n,求出 k 距离近似的点集的最大大小。
【输入格式】
从文件 tree.in 读入。
第一行一个正整数 n。
接下来 n − 1 行,每行两个正整数 u, v,描述一条边。
【输出格式】
输出到文件 tree.out。
输出一行 n 个正整数,第 i 个正整数表示 k = i 的答案。
【样例输入 1】
5 1 2 1 3 1 4 4 5【样例输出 1】
4 3 2 1 1【样例输入 2】
6 1 2 1 3 1 4 4 5 4 6【样例输出 2】
4 4 2 1 1 1【样例输入 3】 见 tree/tree3.in
【样例输出 3】 见 tree/tree3.ans
【测试点约束】
subtask 1 (15pts):n ≤ 20
subtask 2 (15pts):每个点和 1 之间的距离 ≤ 2
subtask 3 (15pts):n ≤ 100
subtask 4 (15pts):n ≤ 3000
subtask 5 (25pts):n ≤ 10^5
subtask 6 (15pts):n ≤ 10^6
对于所有数据,满足 1 ≤ n ≤ 10^6,保证数据给出的是一棵树