【C++竞赛 D】树的深度
来源:互联网 发布:软件检测机构行业 编辑:程序博客网 时间:2024/06/06 08:42
时间限制:1s 内存限制:32MB
问题描述
数据结构中定义,树的高度为一棵树中所有节点的层次的最大值。现在yyy有一棵树请你帮他求出该树的高度。
输入描述
第一行一个整数T(1≤T≤20)表示数据组数。
对于每组数据第一行一个整数n(1≤n≤40000),表示树中节点数。其中结点1为根节点。接下来n行,第一个数〖num〗_i (1≤i≤n), 表示第i个结点的儿子数,接下来〖num〗_i个数,分别是第i个结点的儿子。
输出描述
对于每组数据,输出一行,一个整数表示该树的深度。
输入样例
1
5
2 4 2
1 5
0
1 3
0
输出样例
3
样例解释
样例如下图:树的高度为3。
【题目链接】:
【题解】
水题;
dfs一遍就能求出深度;
【完整代码】
#include <bits/stdc++.h>#define rep1(i,a,b) for (int i = a;i <= b;i++)using namespace std;#define pb push_back;const int MAXN = 4e4+100;int T,n,m,ans;vector <int> a[MAXN];void dfs(int x,int dep){ ans = max(dep,ans); int len = a[x].size(); rep1(i,0,len-1) { int y = a[x][i]; dfs(y,dep+1); }}int main(){ //freopen("D:\\rush.txt","r",stdin); scanf("%d",&T); while (T--) { ans = 0; rep1(i,1,40000) a[i].clear(); scanf("%d",&n); rep1(i,1,n) { int num,x; scanf("%d",&num); rep1(j,1,num) { scanf("%d",&x); a[i].push_back(x); } } dfs(1,1); printf("%d\n",ans); } return 0;}
0 0
- 【C++竞赛 D】树的深度
- 2016年安徽省程序设计竞赛 水题C,D,E 题解
- Codeforces 116C. Party 树的深度
- 第十二届北京师范大学程序设计竞赛 D 夜空中最亮的星
- [2016 NUIST 程序设计竞赛] D. 达朗贝尔的台阶
- 几道c语言的竞赛题目
- 【C++竞赛 C】yyy的数学公式
- 河南省第十届大学生程序设计竞赛 A,B,C,D,F,G,H 题解
- 湖南省第十一届大学生计算机程序设计竞赛 A,B,C,D,F,H,J 题解
- 【哈尔滨理工大学第七届程序设计竞赛决赛(高年级组)】 A B C D E G
- 编程算法 - 二叉树的深度 代码(C)
- 1059. C语言竞赛
- 1059. C语言竞赛
- 1059. C语言竞赛
- 1059. C语言竞赛
- “电池技术竞赛”,纯电动车时代的狂潮前奏丨深度
- 3D深度摄像头
- Matterport3D:室内环境RGB-D数据的深度学习
- mysql查询最后几条、生成一条包含多条记录、插入语句、差值查询
- CodeForces 363DRenting Bikes
- 5. Longest Palindromic Substring
- 修改Firefox浏览器 user-agent 微信浏览器UA
- Java 数组
- 【C++竞赛 D】树的深度
- 多线程练习题(一)
- 记住密码
- ajax状态值(readyState)与状态码(status)详解
- BZOJ 3224 平衡树模板题
- jquery禁用a标签,jquery禁用按钮click点击
- 异步加载网络图片带进度
- jmp short
- 【HDU 5984 Pocky】+ 数学