CF1739D.Reset K Edges
普及+/提高
通过率:0%
时间限制:4.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a rooted tree, consisting of n vertices. The vertices are numbered from 1 to n, the root is the vertex 1.
You can perform the following operation at most k times:
- choose an edge (v,u) of the tree such that v is a parent of u;
- remove the edge (v,u);
- add an edge (1,u) (i. e. make u with its subtree a child of the root).
The height of a tree is the maximum depth of its vertices, and the depth of a vertex is the number of edges on the path from the root to it. For example, the depth of vertex 1 is 0, since it's the root, and the depth of all its children is 1.
What's the smallest height of the tree that can be achieved?
你将得到一棵有根树,包含 n 个顶点。顶点编号为 1 到 n,其中顶点 1 是树的根。
你最多可以执行以下操作 k 次:
- 选择树中的一条边 (v,u),其中 v 是 u 的父节点;
- 删除边 (v,u);
- 添加一条边 (1,u)(即让 u 及其子树成为根节点 1 的子树)。
树的高度定义为所有顶点深度的最大值,而一个顶点的深度定义为从根节点到该顶点的路径上的边数。例如,顶点 1 的深度为 0(因为它是根),其所有子节点的深度均为 1。
请问:通过上述操作,所能达到的树的最小高度是多少?
输入格式
The first line contains a single integer t (1≤t≤104) — the number of testcases.
The first line of each testcase contains two integers n and k (2≤n≤2⋅105; 0≤k≤n−1) — the number of vertices in the tree and the maximum number of operations you can perform.
The second line contains n−1 integers p2,p3,…,pn (1≤pi<i) — the parent of the i-th vertex. Vertex 1 is the root.
The sum of n over all testcases doesn't exceed 2⋅105.
第一行包含一个整数 t(1≤t≤104)—— 测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 k(2≤n≤2⋅105;0≤k≤n−1)—— 树中顶点的数量以及你可以执行的操作的最大次数。
每个测试用例的第二行包含 n−1 个整数 p2,p3,…,pn(1≤pi<i)—— 第 i 个顶点的父节点。顶点 1 是根节点。
所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each testcase, print a single integer — the smallest height of the tree that can achieved by performing at most k operations.
对于每个测试用例,输出一个整数——在最多执行 k 次操作的情况下,所能达到的树的最小高度。
输入输出样例
输入#1
5 5 1 1 1 2 2 5 2 1 1 2 2 6 0 1 2 3 4 5 6 1 1 2 3 4 5 4 3 1 1 1
输出#1
2 1 5 3 1
输入解题思路,AI测评打分。不知道怎么写?