Kai’blog

主博客 | 势利纷华,近之而不染者洁,不近者亦洁,君子不立危墙之下。

P4913【橙】

蕾姆了,上一道题做的好烦,结果直接把上一题的代码稍微改改就直接五分钟做出了另一道题,就是这道橙题。虽然只是一道橙题,但上一题代码得以复用显得自己没浪费那么多时间,显得自己还是有不少收获的。心里平摊多了

Code

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;
int b[1000005],p[1000000],l[1000000],r[1000000],w,u,n,ans=-1e8;

void dfs2(int i,int step)
{
	if(i<1||i>n)return;
	ans=max(step,ans);
	b[i]=step;
	if(p[i]!=0&&b[p[i]]==0)dfs2(p[i],step+1);
	if(l[i]!=0&&b[l[i]]==0)dfs2(l[i],step+1);
	if(r[i]!=0&&b[r[i]]==0)dfs2(r[i],step+1);
}


int main()
{
	cin>>n;
	for(int i=1;i<=n-1;i++)
	{
		cin>>w>>u;p[w]=p[u]=i;
		l[i]=w,r[i]=u;
	}
	dfs2(1,1);
	cout<<ans<<endl;
	
    return 0;
}

posted @ 2023-11-01 11:39  Kai-G  阅读(2)  评论(0编辑  收藏  举报
Copyright © 2019-2020 拱垲. All rights reserved.