欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【dfs】聚会

发布时间:2023/12/3 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【dfs】聚会 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

聚会

题目大意:

有一些树,求深的树的深度

原题

解题思路:

从一个根出发,dfs往下搜

代码:

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int n,t,g,w,ans,c[2005],head[2005]; struct rec {int to,next; }a[2005]; void dfs(int now,int dep) {ans=max(ans,dep);//求最大for (int i=head[now];i;i=a[i].next)dfs(a[i].to,dep+1);//玩下搜 } int main() {scanf("%d",&n);for (int i=1;i<=n;++i){scanf("%d",&t);if (t==-1)//没有父节点{c[++g]=i;continue;}a[++w].to=i;//反过来记录,就可以记录某一个点的子节点a[w].next=head[t];head[t]=w;}for (int i=1;i<=g;++i)dfs(c[i],1);//dfsprintf("%d",ans);//输出 }

总结

以上是生活随笔为你收集整理的【dfs】聚会的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。