CCCCC-L2-026 小字辈(25分)DFS
发布时间
阅读量:
阅读量
本题提供了一个规模庞大的家族族谱,要求你列出最年轻一代的成员名单。
输入格式:
第一行输入提供了一个正整数 N,表示家族中成员的总人数(N 的最大值不超过 100 000)。为便于处理,所有家族成员均被依次编号为 1 至 N。第二行则列出 N 个数字,其中第 i 个数字代表第 i 号成员的父母编号。家族中最年长的祖先其父母编号被标记为 -1。各行中的数值之间通过空格进行分隔。
输出格式:
首先输出最小的辈分等级(最初始的祖先辈分为 1,后续依次递增)。随后在第二行,按照从小到大的顺序列出辈分等级最低的成员编号,各编号之间以一个空格进行分隔,且行首与行尾不得出现多余空格。
输入样例解析
9
2 6 5 5 -1 5 6 4 7
输出样例:
4
1 9
树结构最底层节点求解方法
AC代码
#include<bits/stdc++.h>
using namespace std;
int ans,t;
int b[100001];
vector<int> a[100001];
void dfs(int x,int t) //人-代
{
b[x]=t;
if(t>ans)
全部评论 (0)
还没有任何评论哟~
