本文主要是介绍Tyvj P1033 悠闲的漫步,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
悠闲的漫步
链接
题目给出一棵树求树的最大深度
思路
水题
可以考虑从底向上统计 到祖先为止的长度 取MAX
代码#include <cmath>
#include <iostream>
#include <algorithm>using namespace std;const int Maxn=1001;int tot,n,sum=1,th;
int ans,a[Maxn],son[3][Maxn],c[Maxn],d[Maxn],end[Maxn],fa[Maxn],b[Maxn];int main()
{cin>>n;for(int i=1;i<=n-1;i++){cin>>a[i];cin>>b[i]>>c[i];fa[b[i]]=a[i];fa[c[i]]=a[i];son[1][a[i]]=b[i];son[2][a[i]]=c[i];}for(int i=1;i<=n-1;i++)if(son[1][a[i]]==0&&son[2][a[i]]==0)end[++tot]=a[i];for(int i=1;i<=tot;i++){th=end[i];while(th!=1){d[i]++;th=fa[th];}}sort(d+1,d+tot+1); cout<<d[tot]+1;
}
欢迎指出Bug
#include <cmath>
#include <iostream>
#include <algorithm>using namespace std;const int Maxn=1001;int tot,n,sum=1,th;
int ans,a[Maxn],son[3][Maxn],c[Maxn],d[Maxn],end[Maxn],fa[Maxn],b[Maxn];int main()
{cin>>n;for(int i=1;i<=n-1;i++){cin>>a[i];cin>>b[i]>>c[i];fa[b[i]]=a[i];fa[c[i]]=a[i];son[1][a[i]]=b[i];son[2][a[i]]=c[i];}for(int i=1;i<=n-1;i++)if(son[1][a[i]]==0&&son[2][a[i]]==0)end[++tot]=a[i];for(int i=1;i<=tot;i++){th=end[i];while(th!=1){d[i]++;th=fa[th];}}sort(d+1,d+tot+1); cout<<d[tot]+1;
}
End。
这篇关于Tyvj P1033 悠闲的漫步的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!