自从上次神刀手帮助蚯蚓国增添了上千万人口(蚯口?),蚯蚓国发展得越来越繁荣了!最近,他们在地下发现了一些神奇的纸张,经过仔细研究,居然是 D 国 X 市的超级计算机设计图纸!
这台计算机叫做 “树状图”,由 n 个计算节点与 n - 1 条可以双向通信的网线连接而成,所有计算节点用不超过 n 的正整数编号。顾名思义,这形成了一棵树的结构。
蚯蚓国王已在图纸上掌握了这棵树的完整信息,包括 n 的值与 n - 1 条网线的连接信息。于是蚯蚓国王决定,派出蚯蚓国最强大的两个黑客,小 P 和小 H,入侵 “树状图”,尽可能地摧毁它。
小 P 和小 H 精通世界上最好的编程语言,经过一番商量后,他们决定依次采取如 下的步骤:
- 小 P 选择某个计算节点,作为他入侵的起始点,并在该节点上添加一个 P 标记。
- 重复以下操作若干次(可以是 0 次):
- 小 P 从他当前所在的计算节点出发,选择一条没有被标记过的网线,入侵到该网线的另一端的计算节点,并在路过的网线与目的计算节点上均添加一个 P 标记。
- 小 H 选择某个计算节点,作为她入侵的起始点,并在该节点上添加一个 H 标记。
- 重复以下操作若干次(可以是 0 次):
- 小 H 从她当前所在的计算节点出发,选择一条没有被标记过的网线,入侵到该网线的另一端的计算节点,并在路过的网线与目的计算节点上均添加一个 H 标记。(注意,小 H 不能经过带有 P 标记的网线,但是可以经过带有 P 标记的计算节点)
- 删除所有被标记过的计算节点和网线。
- 对于剩下的每条网线,如果其一端或两端的计算节点在上一步被删除了,则也删除这条网线。
经过以上操作后,“树状图” 会被断开,剩下若干个(可能是 0 个)连通块。为了达到摧毁的目的,蚯蚓国王希望,连通块的个数越多越好。于是他找到了你,希望你能帮他计算这个最多的个数。
小 P 和小 H 非常心急,在你计算方案之前,他们可能就已经算好了最优方案或最优方案的一部分。你能得到一个值 x:
- 若 x = 0,则说明小 P 和小 H 没有算好最优方案,你需要确定他们两个的入侵路线。
- 若 x = 1,则说明小 P 已经算好了某种两人合作的最优方案中,他的入侵路线。他将选择初始点 p_0,并沿着网线一路入侵到了目标点 p_1,并且他不会再沿着网线入侵;你只需要确定小 H 的入侵路线。
- 若 x = 2,则说明小 P 和小 H 算好了一种两人合作的最优方案,小 P 从点 p_0 入侵到了 p_1 并停下,小 H 从点 h_0 入侵到了 h_1 并停下。此时你不需要指挥他们入侵了,只需要计算最后两步删除计算节点与网线后,剩下的连通块个数即可。
