描述
ACMCLUB王国有n+1座城市,标号分别是0到n,并且所有城市构成树状结构。0是国王所在的城市,相当于树状结构中的根。其他城市的成熟度定义为从0到该城市所包含的城市数(不包括0和该城市自己)。我们把最大的那个城市的成熟度作为整个王国的成熟度,现在我们想知道王国成熟度是多少。
输入
输入第一行为整数n(n<=10000),接下来有n行,每行输入一个数字,第i行表示节点i的父节点。数据保证构成一棵树。
输出
对于每组输入,输出一行,表示王国的成熟度。
样例输入1
5
3
3
0
2
0
样例输出1
2
import java.util.*;
public class Main {
static class City {
int f; //父节点
int depth;
boolean flag = false; //是否遍历过
City(int a, int b){
f = a;
depth = b;
}
}
static City[] city;
public static int locDepth(int i) {
if (city[i].f == 0)
city[i].depth = 0;
else
city[i].depth = locDepth(city[i].f) + 1;
city[i].flag = true;
return city[i].depth;
}
public static void main(String args[]){
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int n = input.nextInt();
city = new City[n+1];
for (int i = 1; i <= n; i++)
city[i] = new City(input.nextInt(), 0);
for (int i = 1; i <= n; i++)
if (!city[i].flag)
locDepth(i);
int max = 0;
for (int i = 1; i <= n; i++)
max = Math.max(max, city[i].depth);
System.out.println(max);
}
}
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复