L2-026 小字辈(dfs深搜)「建议收藏」

L2-026 小字辈(dfs深搜)「建议收藏」原题链接本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以一个空格分隔,行首尾不得有多余空格。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。

输入格式:
输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。

输出格式:
首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以一个空格分隔,行首尾不得有多余空格。

输入样例:

9
2 6 5 5 -1 5 6 4 7

输出样例:

4
1 9

题解
开个数组模拟树,每个节点记录子节点就行

#include<bits/stdc++.h>
#define x first
#define y second
#define send string::nops
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
const int M = 3 * N;
const int INF = 0x3f3f3f3f;
typedef pair<int,int> PII;
typedef struct Node * pnode;
vector<int>v[N];
int depth[N],dmax;
void dfs(int u,int d){ 

depth[u] = d;
dmax = max(d,dmax);
for(auto &vv : v[u]){ 

dfs(vv, d + 1);
}
}
int main(){ 

int x,n,tou;
cin>>n;
for(int i = 1;i <= n;i ++){ 

cin>>x;
if(x == -1)tou = i;
v[x].push_back(i);
}
dfs(tou,1);
vector<int>res;
for(int i = 1;i <= n;i ++)
if(depth[i] == dmax)
res.push_back(i);
cout<<dmax<<endl;
cout<<res[0];
for(int i = 1;i < res.size();i ++)cout<<" "<<res[i];
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168917.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python中通过PyPDF2实现PDF合并

    Python中通过PyPDF2实现PDF合并场景PyPDF2是一个纯pythonPDF库,能够分割、合并、裁剪和转换PDF文件的页面。它还可以向PDF文件中添加自定义数据、查看选项和密码。它可以从PDF检索文本和元数据,还可以将整个文件合并在一起。PyPDF21.26.0文档:https://pythonhosted.org/PyPDF2/实现新建PDF1新建PDF2使用pip安装pypddf2…

  • 房费制——登录优化

    房费制——登录优化

  • mysql慢查询日志_sql慢查询日志

    mysql慢查询日志_sql慢查询日志1、显示慢日志是否开启showvariableslike‘%slow_query_log%’2、查询超过多少秒才记录showvariableslike‘%long_query_time%’3、配置分全局配置和配置文件的配置全局配置1)将slow_query_log全局变量设置为“ON”状态setglobalslow_query_log=‘ON’;2)查询超过1秒就记录setgloballong_query_time=13)设置慢查询日志存放的位置setg

    2022年10月11日
  • springboot多环境配置文件_Springboot教程

    springboot多环境配置文件_Springboot教程第一步:三个配置文件,分别是默认配置application.yaml、开发配置application-dev.yaml、生产配置application-pro.yaml第二步:SpringBoot默认加载的是application.yaml,想要默认加载其他配置文件,需要在application.yaml中配置:这样加载的就是生产环境的配置了,打包打的也是application-pro.yaml文件。本地开发的时候也是加载的pro文件。第三步:想要打包的时候用pro文件,IDE开发的时候用的

  • 磁珠的作用

    磁珠的作用磁珠的作用在成品电路板上,我们会看到一些导线或元件的引脚上套有黑色的小磁环,这就是本文要介绍的磁珠。磁珠的全称为铁氧体磁珠滤波器(另有一种是非晶合金磁性材料制作的磁珠),是一种抗干扰元件,滤除高频噪声

  • path是什么意思啊_globalmapper转换投影

    path是什么意思啊_globalmapper转换投影投影投影是JMESPath的关键特性之一。它允许您将表达式应用于元素集合。有五种投影:列表投影切片投影对象投影展平投影过滤投影处理投影需要注意的点投影分为两个步骤。左侧(LHS)创建一

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号