QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#13102. 树上的四俄罗斯人算法

Statistics

“Four Russians” 方法是一种降低各种组合问题复杂度的通用方法,其过程如下:将问题实例划分为若干小块,预计算所有可能的小块的结果,然后通过一步处理每个小块来解决原始问题。“Four Russians” 实际上是指俄罗斯科学家 Arlazarov、Diniz、Kronrod 和 Faradjev。

Fred 正在解决一个树上的问题,他决定使用 “Four Russians” 方法。树上的 “Four Russians” 方法涉及将树拆分为固定大小的小树。这种拆分通常很容易,但不幸的是,Fred 没有完全理解该方法,因此准备工作对他来说太难了。他请求你的帮助。

考虑一棵有 $n$ 个顶点的有根树 $T$。本题中的所有树都是无标号的,且子节点是无序的。Fred 选择了一个整数 $k$,并将恰好有 $k$ 个顶点的有根树称为“微树”(microtree)。他现在想通过以下方式将 $T$ 拆分为微树:

  • 移除 $T$ 的一些叶子节点以得到树 $T'$。
  • 移除 $T'$ 的一些边以得到微树 $T_1, T_2, \dots, T_v$(每个微树 $T_i$ 必须恰好有 $k$ 个顶点)。

他希望选择一种将 $T$ 拆分为微树的方式,使得微树的类型数量最少。如果两棵微树作为有根树是同构的,则它们属于同一种类型。例如,有 3 个顶点的微树有 2 种类型,有 4 个顶点的微树有 4 种类型,如下图所示。

帮助 Fred。对于给定的树 $T$ 和整数 $k$,求出最小的 $s$,使得 $T$ 可以按照上述方式拆分为属于 $s$ 种类型之一的 $k$ 大小的微树。

输入格式

输入文件包含多个测试用例。每个测试用例的第一行包含 $n$ 和 $k$ ($2 \le n \le 100, 2 \le k \le 5$)。第二行包含 $n-1$ 个整数,描述树 $T$。$T$ 的根是顶点 1。对于每个从 2 到 $n$ 的顶点 $i$,给出了它的父节点 $p_i$,满足 $p_i < i$。

最后一个测试用例后跟一行包含两个零的行,该行不应被处理。所有测试用例的 $n$ 之和不超过 300。

输出格式

对于每个测试用例,输出 $s$ —— 使得 $T$ 可以拆分为 $s$ 种类型的微树的最小数量。如果无法以这种方式拆分树,则输出 $-1$。

样例

输入 1

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

输出 1

1
2
-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.