7-4 小字辈 (25

分)

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

输入格式:

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

输出格式:

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

输入样例:

9
2 6 5 5 -1 5 6 4 7

输出样例:

4
1 9

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

输入格式:

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

输出格式:

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

输入样例:

9
2 6 5 5 -1 5 6 4 7

输出样例:

4
1 9
​
//首先在数组中根据-1找到根节点所在的编号 然后根据编号在向数组中找到对应的数 记录其下标编号 再次在数组中 找其父母
//也就是 儿子找爹
#include<stdio.h>
int Father[100000];//爹
int seniority[100000]={0};//辈份
int Find(int x){//以x为儿子找爹if(Father[x]==-1)seniority[x]=1;if(seniority[x]==0)seniority[x]=Find(Father[x])+1;//找爹每往上找一次辈分加1  //从1找到爹2 从2找到爹6 从6找到爹5 从5 找到爹-1  那么此时 和h[x]==1 不等于0 则不执行下面的if  //开始返回值 从1 开始返回 多层嵌套 每次加1 直到第一层结束 也就是1的辈分是4return seniority[x];
}
int main(){int N,i;scanf("%d",&N);for(i=1;i<=N;i++){scanf("%d",&Father[i]);}for(i=1;i<=N;i++){//题目说明了是从第I个即 是从1开始;Find(i);}int max=0;for(i=1;i<=N;i++){if(seniority[i]>max)max=seniority[i];}printf("%d\n",max);int flag=0,count=0,j;for(i=1;i<=N;i++){//计数 统计 总共有多少个 最小辈分if(seniority[i]==max)count++;}for(i=1;i<=N;i++){if(seniority[i]==max){if(flag==count-1)printf("%d",i);else{printf("%d ",i);flag++;}         }}
}                                 ​

7-4 小字辈 (25 分) 详解相关推荐

  1. L2-1 简单计算器 (25 分)详解c语言 模拟堆栈

    L2-1 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S​1存放数字,另一个堆栈 S​2 存放运算符.计算 ...

  2. 7-24 树种统计 (25 分)(详解)map做法 map真香啊!

    一:题目 7-24 树种统计 (25 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类.请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比. 输入格式: 输入首先给出 ...

  3. 7-6 列出连通集 (25 分)(详解)

    列出连通集 1:思路 : 利用了邻接矩阵储存数据并建图,然后就是 DFS遍历和BFS遍历 只不过是本题需要输出的是非连通图 连通分量 外加俩函数搞定 2:上码 #include<bits/std ...

  4. 7-41 PAT排名汇总 (25 分)(详解+思路+重写sort函数)兄弟们冲呀呀呀呀呀呀呀

    一:题目 计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序 ...

  5. 7-40 奥运排行榜 (25 分)(详解+思路+map+vector做法)兄弟们冲压呀呀呀呀呀呀呀

    一:题目 每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同.比如中国金牌总数列第一的时候,中国媒体就公布"金牌榜":而美国的奖牌总数第一,于是美国 ...

  6. 7-22 堆栈模拟队列 (25 分)(详解夹思路)

    一:题目 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或 ...

  7. L2-025 分而治之 (25 分)详解

    分而治之,各个击破是兵家常用的策略之一.在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破.为此参谋部提供了若干打击方案.本题就请你编写程序,判断每个方案的可行性 ...

  8. 【CCCC】L2-026 小字辈 (25分),求多叉树的深度和底层叶节点

    problem L2-026 小字辈 (25分) 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) -- 简单起 ...

  9. 7-5 小字辈 (25 分)

    暑假字符串专题HBU程序设计训练营总结 ?点这里 7-5 小字辈 (25 分) 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 0 ...

最新文章

  1. ISA2006 之 域环境下部署
  2. QT关于全局变量的申请以及使用,所有class可用同一个变量
  3. boost::hana::detail::any_of用法的测试程序
  4. JavaScript 语言基础知识点图示
  5. leetcode 75. Sort Colors | 75. 颜色分类(荷兰国旗问题,快速排序)
  6. 大数据:互联网大规模数据挖掘与分布式处理
  7. 【BZOJ4515】游戏,树链剖分+永久化标记线段树维护线段信息(李超线段树)
  8. (详解)11年真题:求两个序列合并后的的中位数
  9. C语言错题锦集(持续更新)
  10. 软考真题答案-2021年11月系统集成项目管理工程师下午题(一)
  11. 数据结构:图的基本概念
  12. 信号发送,槽函数执行,过程中传递的是对象的引用,涉及的拷贝操作
  13. 2017广州(国际)演艺设备、智能声光产品技术展览会GETshow会刊(参展商名录)
  14. 龙族幻想东京机器人一次_龙族幻想凌晨四点的东京机器人坐标-机器人刷新点_6137游戏网...
  15. zip暴力破解工具Python实现
  16. 成功解决设置vive cosmos无线套件遇到的三个问题
  17. 【90天英语通】零基础自学新概念英语
  18. WPF中System.Windows.Interactivity的使用
  19. 如何屏蔽大街网的推送消息
  20. 指令——流水线和吞吐率

热门文章

  1. PHP蜘蛛抓取,百度蜘蛛频频抓取php文件怎么办(悬赏1元) - 搜外SEO问答
  2. switch用法笔记
  3. 如何配置ubuntu可被公网访问【内网穿透】
  4. 【嵌入式硬件芯片开发笔记】4-20mA DAC芯片AD5421配置流程
  5. Web控件和HTML控件
  6. 卸载windows search
  7. python表情代码_python如何实现表情识别 python实现表情识别代码示例
  8. 云计算架构及服务模式
  9. Springboot毕设项目宠物医院预约挂号系统g8yr6(java+VUE+Mybatis+Maven+Mysql)
  10. Android桌面小组件时钟实现