树
题目描述 有一棵 𝑛𝑛 个节点的以1为根的有根树。现在可以对这棵树进行若干次操作,每一次 操作可以选择树上的一个点然后删掉这个点和它的儿子之间的所有边。
现在想要知道对于每一个 𝑘𝑘 ∈ [1, 𝑛𝑛],最少需要多少次操作才能让图中恰好存在 𝑘𝑘 个联通块。
输入格式 第一行输入一个正整数 𝑛𝑛。
第二行输入 𝑛𝑛 − 1 个整数 𝑓𝑓𝑖𝑖 表示 𝑖𝑖 + 1 号点的父亲,保证 1 ≤ 𝑓𝑓𝑖𝑖 ≤ 𝑖𝑖。
输出格式 输出 𝑛𝑛 个整数,第 𝑖𝑖 个数表示 𝑘𝑘 = 𝑖𝑖 时的答案,如果无法让图中恰好存在 𝑘𝑘 个联通 块,则输出-1。
样例输入 1 6 1 2 1 1 2
样例输出 1 0 -1 1 1 -1 2
样例输入输出 2 见下发文件。
数据规模 共 10 个测试点。
测试点1,2,3满足𝑛𝑛 ≤ 20。
测试点4,5,6满足𝑛𝑛 ≤ 100。
对于所有数据,满足1 ≤ 𝑛𝑛 ≤ 3000。