给定一棵 n 个结点的有根树,其中结点 1 为根,结点 i (2≤i≤n) 的父亲结点为结点 pi。
对于 1≤i≤n,定义结点 i 的深度 di 为结点 1 到结点 i 的简单路径的边数,也就是说,d1=0,di=dpi+1 (2≤i≤n)。定义有根树的高度 h 为所有结点的深度的最大值,即 h=maxi=1ndi。
给定高度的上界 m。在本题中,给定的有根树的高度不超过 m。
你需要给每个结点设置一个非负整数作为它的权值。对于 1≤i≤n,若结点 i 的权值为 ai,令 Si 表示结点 i 的子树中结点权值构成的集合。对于每一种权值设置方案,定义树的价值为 ∑i=1nmex(Si),其中 mex(S) 表示不在集合 S 中的最小非负整数。例如,在下图中,若设置 a1=3,a2=2,a3=a4=0,a5=1,则 S1={0,1,2,3},S2={0,1,2},S3={0},S4={0},S5={1},树的价值为 4+3+1+1+0=9。
你需要求出,在所有权值设置方案中,树的价值的最大值。
本题包含多组测试数据。
输入的第一行包含一个正整数 t,表示测试数据组数。
接下来依次输入每组测试数据,对于每组测试数据:
对于每组测试数据,输出一行一个非负整数,表示树的价值的最大值。
2 5 2 1 1 2 2 7 2 1 1 2 2 2 3
9 13
该样例共包含两组测试数据。
对于第一组测试数据,可以设置 a1=3,a2=2,a3=a4=0,a5=1,则树的价值为 4+3+1+1+0=9。
对于第二组测试数据,可以设置 a1=4,a2=3,a4=2,a3=a6=1,a5=a7=0,则树的价值为 5+4+2+0+1+0+1=13。
对于所有测试数据,均有:
| 测试点编号 | n≤ | m≤ |
|---|---|---|
| 1,2 | 7 | n−1 |
| 3,4 | 13 | ^ |
| 5,6 | 18 | ^ |
| 7,8 | 40 | ^ |
| 9,10 | 120 | ^ |
| 11,12 | 360 | ^ |
| 13,14 | 4,000 | 2 |
| 15∼17 | ^ | 10 |
| 18,19 | ^ | 50 |
| 20∼25 | 8,000 | 800 |