使用vector<int> t[100]来创建树。有点奇怪是的本机运行死机,但是Ac了;估计是vector遍历的关系;
问题 B: 树的高度
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 128 MB
解决 : 216 提交 : 342
题目描述
一棵树有n个节点,其中1号节点为根节点。
输入
第一行是整数n,表示节点数
后面若干行,每行两个整数a b,表示b是a的子节点。
输出
求这棵树的高度(根节点为第1层)
样例输入 Copy
5 1 2 1 3 3 4 3 5
#include<bits/stdc++.h>
using namespace std;
vector<int> t[100];
int height=1;
int n,d;
void dfs(int i)
{
if(t[i].size()>0)
{
height++;
for(int j: t[i])
{
dfs(j);
}
}
}
int main()
{
scanf("%d",&n);
int a,b;
b=0;
while(b<n)
{
scanf("%d %d",&a,&b);
t[a].push_back(b);
}
dfs(1);
printf("%d",height);
return 0;
}