/ Vijos / 题库 /

奶牛政坛

奶牛政坛

时间限制:1秒  内存限制:256M


【题目描述】

  农夫约翰的奶牛住在 \(N\) 片不同的草地上,标号为 1 到 \(N\)。恰好有 \(N-1\) 条单位长度的双向道路,用各种各样的方法连接这些草地。而且从每片草地出发都可以抵达其他所有草地。也就是说,这些草地和道路构成了一种叫做树的图。输入包含一个详细的草地的集合,详细说明了每个草地的父节点 \(P_i\),根节点的 \(P_i = 0\), 表示它没有父节点。因为奶牛建立了 1 到 \(K\) 一共 \(K (1 ≤ K ≤ N/2)\) 个政党。每只奶牛都要加入某一个政党,其中,第 \(i\) 只奶牛属于第 \(A_i\) 个政党。而且每个政党至少有两只奶牛。

  这些政党互相吵闹争。每个政党都想知道自己的“范围”有多大。其中,定义一个政党的范围是这个政党离得最远的两只奶牛(沿着双向道路行走)的距离。帮助奶牛们求出每个政党的范围。

【输入格式】

  第 1 行: 两个由空格隔开的整数: \(N\) 和 \(K\)。
  第 2 到第 \(N+1\) 行: 第 \(i+1\) 行包含两个由空格隔开的整数: \(A_i\) 和 \(P_i\)。

【输出格式】

  第 1 到第 \(K\) 行: 第 \(i\) 行包含一个单独的整数,表示第 \(i\) 个政党的范围。

【输入输出样例】

 Input

6 2
1 3
2 1
1 0
2 1
2 1
1 5

 Output

3
2

【数据限制】

  对于 \(100\%\) 的数据,\(1≤N≤200000\)。

【来源】

  Mr.he

信息

ID
2726
难度
(无)
分类
树结构 | 最近公共祖先 点击显示
标签
递交数
0
已通过
0
通过率
?
上传者