若wa#4
查看原帖
若wa#4
794578
crh_楼主2024/8/5 21:23
void dfs3(int u, int f){
	maxdeep[u] = d[u];
	for(int v : children[u]){
		if(v == f) continue;
		d[v] = d[u] + 1;
		dfs3(v, u);
		maxdeep[v] = max(maxdeep[v], maxdeep[u]);
	}
}

看一下取最大值是否赋值错误

void dfs3(int u, int f){
	maxdeep[u] = d[u];
	for(int v : children[u]){
		if(v == f) continue;
		d[v] = d[u] + 1;
		dfs3(v, u);
		maxdeep[u] = max(maxdeep[v], maxdeep[u]);//这里应该是把最大值附给max[u]
	}
}
2024/8/5 21:23
加载中...