Logo Universal Online Judge

UOJ

时间限制:2 s 空间限制:512 MB
统计

【题目背景】 『是我,是我先,明明都是我先来的……接吻也好,拥抱也好,还是喜欢上那家伙也 好。』
【题目描述】
给出一个 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,保证数据给出的是一棵树