AcWing 3215-csp4(4). 网络延时
原题链接
中等
作者:
YAX_AC
,
2024-11-15 18:15:16
,
所有人可见
,
阅读 2
//找树的直径
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 20010;
int n,m;
int h[N],e[N],ne[N],idx;
int ans;
void add(int a,int b)
{
e[idx] = b,ne[idx] = h[a],h[a] = idx++;
}
int dfs(int u)
{
int d1 = 0,d2 = 0;
for(int i = h[u]; ~i; i = ne[i])
{
int j = e[i];
int d = dfs(j);
if(d >= d1) d2 = d1,d1 = d;
else if(d > d2) d2 = d;
}
ans = max(ans,d1+d2);
return d1+1;//返回最大长度
}
int main()
{
cin>>n>>m;
memset(h,-1,sizeof h);
for(int i = 2; i<=n; i++)
{
int p;
cin>>p;
add(p,i);
}
for(int i = n+1; i<=n+m; i++)
{
int p;
cin>>p;
add(p,i);
}
dfs(1);
cout<<ans;
return 0;
}
棒棒哒!- ̗̀(๑ᵔ⌔ᵔ๑)εïз~