发现一个有趣(但WA了一个点的)的方法
查看原帖
发现一个有趣(但WA了一个点的)的方法
389540
imfkwk楼主2021/1/31 11:58

子结点深度 = 父结点深度 + 1

#include <bits/stdc++.h>
using namespace std;

int n;
int d[1000005]; 
int ans = 1;

int main(void) {
	scanf("%d", &n);
	
	d[1] = 1;
	
	for (int i = 1; i <= n; i++) {
		int x, y;
		scanf("%d%d", &x, &y);
		if(x) d[x] = d[i] + 1;
		if(y) d[y] = d[i] + 1;
		ans = max(ans, max(d[x], d[y]));
	}
	
	printf("%d", ans);
	
	return 0;
}

似乎是没有问题的,但是有一个点WA了。

果然这题怎么可能这么简单。(不过按照常规的dfs遍历的确挺简单)

2021/1/31 11:58
加载中...