#ijpcanimals. [ijpc_animals]むこのどうぶつたち と しんりんのはかい (Innocent Animals and Destruction of Forests)
[ijpc_animals]むこのどうぶつたち と しんりんのはかい (Innocent Animals and Destruction of Forests)
题目背景
福克斯 · 吉罗(Fox Jiro)在茂密的森林中与其他动物一起快乐地生活。
森林中有许多动物游乐场,这些游乐场通过多条道路相连。当然,从任何一个游乐场到任何一个游乐场都有多条路径,从一个游乐场到另一个游乐场只有一条路线。
但是动物的快乐时光并没有持续多久。人类一路来到森林,开始摧毁动物的游乐场。
如果游乐场被人类摧毁,它就无法通过,因为它对动物来说已经很危险了。如果这样做,动物的游乐场将被分割,某些游乐场将无法进入。
包括福克斯在内的动物都想以某种方式抵制这种情况,但是很遗憾他们并不可以用力量来阻止人类。
别无选择,除了动物们决定去已经分开的游乐场,这样剩下的时间似乎最长。
尽管这些动物非常贫穷,但是人类对森林的破坏似乎并没有结束。至少,我希望他们帮助他们在游乐场上待更长的时间。
题目描述
给定N个顶点的树。每个顶点都有一个从到的不同整数。
它们要执行以下过程:
函数 :
- : 顶点数。顶点用从到的不同整数编号。
- : 表示树的边的信息的二维整数数组。且,边i连接两个不同的顶点和。表示该树结构。也就是说,一条边可以从任何一个顶点追踪到任何一个顶点,并且只有一条路线。
在第一次调用查询( )之前,仅调用一次过程。这个过程没有返回值。
-
具有以下参数的过程查询( ):
- -要销毁的顶点数。
此过程恰好称为次。一次调用会破坏一个顶点(此破坏在之前的所有破坏之后)。已经销毁的顶点 将不再指定。销毁顶点 时,删除该顶点及其所有连接的边。每个调用必须返回销毁顶点后剩余的森林(一棵或多棵树的集合)的每棵树中最大的顶点数。返回所有现有树中拥有最大数量的顶点(无论何时拆分)。
- -要销毁的顶点数。
输入格式
共 行
- 第行:
- 第到行:,而第行有用空格分开的和。
- 第行:个整数用空格隔开。其中是在第 个位置处破坏的节点的数量。
输出格式
行
- 共个整数用空格分开输出。其中是第i次查询调用应返回的返回值。