当前位置:网站首页>-找树根2-
-找树根2-
2022-08-03 11:42:00 【-JMY-】
题目描述
一棵树有n个结点,已知树上所有的父子结点关系,请问该树的根是几号结点,哪个结点的子结点最多,该结点有哪些子结点。
输入
第一行,有1个整数n代表结点数量(0<n≤100)
接下来若干行;每行两个结点x和y,表示y是x的孩子(1≤x,y≤1000)
请注意:树上结点的编号不一定是连续的
输出
第一行输出树根的编号。
第二行输出孩子最多的结点编号(如果有多个结点的子结点都是最多的,则输出编号最大的那个)。
第三行输出第二行求出的孩子最多的结点,有哪些孩子,按照编号从小到大,输出这些孩子的编号,用空格隔开。
样例输入
5 4 1 4 2 1 3 1 5
样例输出
4 4 1 2
参考代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[1005],b[1005],s[1005],k[1005],l[1005],maxn,ip;
int f(int x){
if(s[x]==0)
return x;
return f(s[x]);
}
int main(){
cin>>n;
for(int i=0;i<n-1;i++){
cin>>a[i]>>b[i];
s[b[i]]=a[i];
k[a[i]]++;
}
cout<<f(b[0])<<'\n';
for(int i=0;i<n-1;i++){
if(k[maxn]<k[a[i]]||(k[maxn]<=k[a[i]]&&maxn<=a[i]))
maxn=a[i];
}
cout<<maxn<<'\n';
for(int i=0;i<n-1;i++){
if(s[b[i]]==maxn){
l[ip]=b[i];
ip++;
}
}
sort(l,l+ip);
for(int i=0;i<ip;i++)
cout<<l[i]<<' ';
return 0;
}
边栏推荐
猜你喜欢

Activiti产生的背景和作用

【MySQL】数据库进阶之索引内容详解(上篇 索引分类与操作)

技术总监需要会些什么?也太难了!

劝退背后。

面试突击71:GET 和 POST 有什么区别?

Explain the virtual machine in detail!JD.com produced HotSpot VM source code analysis notes (with complete source code)

5个超好用手机开源自动化工具,哪个适合你?

RICON:NER SOTA 又来!

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
随机推荐
TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践
微信小程序获取用户手机号码
详解虚拟机!京东大佬出品HotSpot VM源码剖析笔记(附完整源码)
Activiti产生的背景和作用
mysql advanced (twenty-four) method summary of defense against SQL injection
899. 有序队列 : 最小表示法模板题
谷歌研究员被群嘲:研究员爆料AI有意识,被勒令休假
Matlab学习10-图像处理之傅里叶变换
Matlab学习12-图像处理之图像增强
LeetCode刷题笔记:622.设计循环队列
Cookie and Session usage
RICON:NER SOTA 又来!
mysql进阶(二十四)防御SQL注入的方法总结
【MySQL功法】第4话 · 和kiko一起探索MySQL中的运算符
LeetCode刷题笔记:105.从前序与中序遍历序列构造二叉树
This article takes you to understand the principle of CDN technology
hystrix 服务熔断和服务降级
ssh 免密登录了解下
微信小程序获取用户手机号码
bash for循环