问题 6119 --树(tree)

6119: 树(tree)

时间限制: 1 Sec  内存限制: 128 MB
提交: 37  解决: 15
[提交][状态][命题人:]

题目描述

有一棵 n 个节点的以 1 为根的有根树。现在可以对这棵树进行若干次操作,每一次操作可以选择树上的一个点然后删掉这个点和它的儿子之间的所有边。

现在想要知道对于每一个 k∈[1,n],最少需要多少次操作才能让图中恰好存在 k 个联通块。

输入

第一行输入一个正整数 n 。
第二行输入 n-1 个整数 f[i] 表示 i+1 号点的父亲,保证 1≤f[i]≤i 。

输出

输出 n 个整数,第 i 个数表示 k=i 时的答案,如果无法让图中恰好存在 k 个联通块,则输出 -1 。
样例输入
Copy
6
1 2 1 1 2
样例输出
Copy
0 -1 1 1 -1 2

提示

数据规模
共 10 个测试点。
测试点 1,2,3 满足 n≤20 。
测试点 4,5,6 满足 n≤100 。
对于所有数据,满足 1≤n≤3000 。

来源

[提交][状态]