题目描述
题目描述
Egor 和他的朋友 Arseniy 今年即将从学校毕业,很快就要进入大学。由于他们是非常负责的人,所以他们已经开始为入学做准备了。
首先,他们决定先考虑在漫长的四年学习生活中住在哪里。在访问大学网站之后,他们发现大学宿舍可以表示为一棵包含 个顶点、根为顶点 的有根树。在这棵树中,每个顶点表示一个休闲场所,其中有某种类型的活动 。这两位朋友需要选择 个休闲场所(不一定不同)作为他们将要安顿的地方。他们坚信,下面这个函数 $f(u, v) = diff(u, lca(u, v)) \cdot diff(v, lca(u, v))$ 的值越大,他们的生活就会越有趣。请帮助 Egor 和 Arseniy,找出所有休闲场所对中 的最大值!
— 从顶点 到顶点 的简单路径上出现的不同活动数量。
— 一个顶点 ,它距离根最远,并且同时是顶点 和顶点 的祖先。
输入格式
每个测试包含若干个测试用例。第一行包含一个整数 ( )— 测试用例的数量。接下来给出各个测试用例的描述。
每个测试用例的第一行包含一个整数 ( )。
每个测试用例的第二行包含 个整数 ( ),其中 — 顶点 的父节点。
每个测试用例的第三行包含 个整数 ( ),其中 — 位于顶点 的活动编号。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出所有休闲场所对 中 的最大值。
4
2
1
1 2
7
1 1 2 2 3 3
6 5 2 3 6 5 6
13
1 1 1 2 2 2 3 3 4 5 6 6
2 2 2 1 4 9 7 2 5 2 1 11 2
12
1 1 1 2 2 3 4 4 7 7 6
11 2 1 11 12 8 5 8 8 5 11 7
2
9
9
12
提示
考虑第四个测试用例。这棵树具有如下结构:
所有休闲场所都被染上了颜色。相同的颜色表示这些休闲场所中的活动相同。考虑顶点对 , 。写出从 到 的路径上的所有活动 — ,其中有 种不同的活动,因此 。再写出从 到 的路径上的所有活动 — ,其中有 种不同的活动,因此 。我们得到 $f(11, 12) = diff(12, 1) \cdot diff(11, 1) = 4 \cdot 3 = 12$ ,这就是这棵树的答案。可以证明,不可能得到更好的答案。