A92617.[NOIP2025] 树的价值
NOI/NOI+/CTSC
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
NOIP2025 T3
给定一棵 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。
【等待好心人上传图片】
你需要求出,在所有权值设置方案中,树的价值的最大值。
输入格式
本题包含多组测试数据。
输入的第一行包含一个正整数 k,表示测试数据组数。
接下来依次输入每组测试数据。对于每组测试数据:
- 第一行包含两个正整数 n,m,分别表示结点数量与高度的上限;
- 第二行包含 n−1 个正整数 p2,p3,…,pn,分别表示每个结点的父亲结点。
输出格式
对于每组测试数据,输出一行一个非负整数,表示树的价值的最大值。
输入输出样例
输入#1
2 5 2 1 1 2 2 7 2 1 1 2 2 2 3
输出#1
9 13
说明/提示
【样例 1 解释】
该样例共包含两组测试数据。
对于第一组测试数据,可以设置 a1=3,a2=2,a3=a4=0,a5=1,则树的价值为 4+3+1+1+0=9。
对于第二组测试数据,可以设置 a1=4,a2=3,a3=2,a4=a6=1,a5=a7=0,则树的价值为 5+4+2+0+1+0+1=13。
【数据范围】
对于所有测试数据,均有:
- 1≤t≤5;
- 2≤n≤8,000,1≤m≤min(n−1,800);
- 对于所有 2≤i≤n,均有 1≤pi≤i−1;
- 给定的有根树的高度不超过 m。
| 测试点编号 | n≤ | m≤ |
|---|---|---|
| 1,2 | 7 | n−1 |
| 3,4 | 13 | n−1 |
| 5,6 | 18 | n−1 |
| 7,8 | 40 | n−1 |
| 9,10 | 120 | n−1 |
| 11,12 | 360 | n−1 |
| 13,14 | 4,000 | 2 |
| 15∼17 | 4,000 | 10 |
| 18,19 | 4,000 | 50 |
| 20∼25 | 8,000 | 800 |