CF1065F.Up and Down the Tree
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a tree with n vertices; its root is vertex 1 . Also there is a token, initially placed in the root. You can move the token to other vertices. Let's assume current vertex of token is v , then you make any of the following two possible moves:
- move down to any leaf in subtree of v ;
- if vertex v is a leaf, then move up to the parent no more than k times. In other words, if h(v) is the depth of vertex v (the depth of the root is 0 ), then you can move to vertex to such that to is an ancestor of v and h(v)−k≤h(to) .
Consider that root is not a leaf (even if its degree is 1 ). Calculate the maximum number of different leaves you can visit during one sequence of moves.
输入格式
The first line contains two integers n and k ( 1≤k<n≤106 ) — the number of vertices in the tree and the restriction on moving up, respectively.
The second line contains n−1 integers p2,p3,…,pn , where pi is the parent of vertex i .
It is guaranteed that the input represents a valid tree, rooted at 1 .
输出格式
Print one integer — the maximum possible number of different leaves you can visit.
输入输出样例
输入#1
7 1 1 1 3 3 4 4
输出#1
4
输入#2
8 2 1 1 2 3 4 5 5
输出#2
2
说明/提示
The graph from the first example:
One of the optimal ways is the next one: 1→2→1→5→3→7→4→6 .
The graph from the second example:
One of the optimal ways is the next one: 1→7→5→8 . Note that there is no way to move from 6 to 7 or 8 and vice versa.