当前位置:
首页 >
【dfs】聚会
发布时间:2023/12/3
42
豆豆
聚会
题目大意:
有一些树,求深的树的深度
原题
解题思路:
从一个根出发,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);//输出 }总结
- 上一篇: 在太鼓岛建设房屋经营城镇,世嘉放出《人中
- 下一篇: 卡车