【GPLT】 2018年天梯赛全国总决赛 L2-2 小字辈(c++)
题目:

这一题并不是很难,属于常规的图论遍历题,这里我是用的bfs(dfs应该也可以,但明显bfs简单一些)。
本人写的时候写了很多没必要头文件,自己可以根据内容删去,必要的我会写上注释
如有错误,请指正。
知识点:bfs,邻接表,队列
代码如下(本人喜欢多换行,所以可能看起来比较长,但其实内容不多):
1 #include<iostream>//必要
2 #include<cstring>//必要
3 #include<cstdio>
4 #include<queue>//必要,也可以自己写个模拟队列
5 #include<algorithm>
6 #include<string>//必要
7 #include<map>
8 using namespace std;
9 const int N=1e7+10;
10 int e[N],ne[N],idx,h[N];//邻接表用
11 int n;
12 int d[N],b[N];
13 void add(int a,int b)
14 {
15 e[idx]=b,ne[idx]=h[a],h[a]=idx++;
16 }
17 void bfs(int root)
18 {
19 queue<int> q;//建个队列
20 q.push(root);//
21 while(q.size())
22 {
23 int t=q.front();//取出点
24 q.pop();
25 for(int i=h[t];i!=-1;i=ne[i])//存储的是下标
26 {
27 int j=e[i];
28 if(d[j]==0)//如果没有遍历过
29 {
30 d[j]=d[t]+1;//辈分加1
31 q.push(j);//放进队列
32 }
33 }
34 }
35 }
36 int main()
37 {
38 cin>>n;
39 int x;
40 int root;
41 memset(h,-1,sizeof h);//初始化表头
42 for(int i=1;i<=n;i++)
43 {
44 cin>>x;
45 if(x!=-1) add(x,i);//建立练习,注意是x,i不是i,x。因为x是父亲,应该是父亲走向儿子
46 else
47 {
48 root=i;//找到老祖宗(根结点)
49 d[root]=1;
50 }
51 }
52 bfs(root);
53 int ma=0;
54 for(int i=1;i<=n;i++)
55 {
56 ma=max(ma,d[i]);//寻找(数字)最大的辈分
57 }
58 cout<<ma<<endl;
59 int cnt=0;//下面的只是为了输出没什么实际内容,就是单纯的把最小辈分人的编号放在另外一个数组
60 for(int i=1;i<=n;i++)
61 {
62 if(d[i]==ma)
63 {
64 b[cnt++]=i;
65 }
66 }
67 for(int i=0;i<cnt;i++)
68 {
69 if(i!=cnt-1) cout<<b[i]<<" ";
70 else cout<<b[i]<<endl;//输出要求
71 }
72 return 0;
73 }
【GPLT】 2018年天梯赛全国总决赛 L2-2 小字辈(c++)的更多相关文章
- 2018年天梯赛LV2题目汇总小结
Ⅰ.L2-1 分而治之---邻接表 分而治之,各个击破是兵家常用的策略之一.在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破.为此参谋部提供了若干打击方案.本题 ...
- 2019天梯赛练习题(L2专项练习)
7-2 列出连通集 (25 分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集.假设顶点从0到N−1编号.进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序 ...
- 2019 gplt团体程序设计天梯赛总结
分很菜… 以后写题一定记得把题意理清楚了再开始写. 模拟题还是大坑,代码还是写得不够多,代码量一大就写bug. 补题 l1-8 估值一亿的AI核心代码 补题链接:https://pintia.cn/p ...
- PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)
PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++: 欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...
- L1-049. 天梯赛座位分配
天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位 ...
- 『ACM C++』 PTA 天梯赛练习集L1 | 052-053
今日刷题,水题水题 ------------------------------------------------L1-052------------------------------------ ...
- 2018天梯赛第一次训练题解和ac代码
随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS Memory Limit: ...
- 2018天梯赛、蓝桥杯、(CCPC省赛、邀请赛、ICPC邀请赛)校内选拔赛反思总结!
才四月份,上半年的比赛就告一段落了.. 天梯赛混子,三十个人分最低,把队友拖到了国三,蓝桥杯省二滚粗,止步京城,旅游选拔赛成功选为替补二队,啊! 不过既然已经过去,我们说些乐观的一面,积累了大赛经验是 ...
- 第四届CCCC团体程序设计天梯赛 后记
一不小心又翻车了,第二次痛失200分 1.开局7分钟A了L2-3,一看榜已经有七个大兄弟排在前面了,翻车 * 1 2.把L1-3 A了18分,留了两分准备抢顽强拼搏奖,最后五秒钟把题过了,万万没想到还 ...
随机推荐
- Go语言- import 导入包的语法
一 包的导入语法 在go语言中一个包(文件夹)中可以包含多个 go 文件,每一个文件通过文件第一行的 package 来指明自己所在的包,原则上应该与自己所在的文件夹同名,但也可以指定为其他名称,但同 ...
- .NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
序列化和反序列化是指什么? 序列化(seriallization): 将对象转化为便于传输的数据格式, 常见的序列化格式:二进制格式,字节数组,json字符串,xml字符串.反序列化(deserial ...
- 西门子STEP7安装过程不断提示电脑重启的解决方法
win+R打开注册表 进入 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 删除PendingFileR ...
- ioctl以及read阻塞型引发的思考
1. 尝试strace 或 jstack 去追踪程序,发现某一个进程作为socket连接server出现如下的log(strace追踪): 1. ioctl(45,[0],0) = 0 2. .... ...
- Linux 环境Skywalking部署Elasticsearch
一.环境准备 1.Java jdk 11+(安装教程可参考https://www.cnblogs.com/sportsky/p/15973713.html) 2.elasticsearch 二.环境搭 ...
- HTTP发展史,HTTP1.1与HTTP2.0的区别
前言 我们知道HTTP是浏览器中最重要且使用最多的协议,它不仅是浏览器与服务端的通信语言,更是互联网的基石.随着浏览器的不断更新迭代,HTTP为了适应技术的更新也在不断进化,学习HTTP的最佳途径就是 ...
- SpringBoot与SpringCloud的关系与区别?
一.SpringBoot和SpringCloud简介 1.SpringBoot:是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动Sp ...
- maven下载出现unknown文件夹
问题场景 maven下载配置完成后,发现如上图代码包下载失败,本地maven库中出现unknown文件夹,也就是说,maven无法定位下载到上面的代码包. 解决过程 仔细观察发现,所有下载失败的代码包 ...
- 静态嵌套类(Static Nested Class)和内部类(Inner Class) 的不同?
Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类 实例被实例化.而通常的内部类需要在外部类实例化后才能实例化,其语法看起 来挺诡异的,如下所示. / ...
- MySQL 有关权限的表都有哪几个?
MySQL 服务器通过权限表来控制用户对数据库的访问,权限表存放在 MySQL 数 据库里,由 MySQL_install_db 脚本初始化.这些权限表分别 user,db,table_priv,co ...