蕾姆了,上一道题做的好烦,结果直接把上一题的代码稍微改改就直接五分钟做出了另一道题,就是这道橙题。虽然只是一道橙题,但上一题代码得以复用显得自己没浪费那么多时间,显得自己还是有不少收获的。心里平摊多了
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;
}
标签:int,1000000,dfs2,step,ans,include,P4913
From: https://www.cnblogs.com/gongkai/p/17802723.html