首页 > 编程语言 >找树根和孩子(C++)

找树根和孩子(C++)

时间:2024-07-17 14:58:18浏览次数:15  
标签:结点 树根 孩子 sonnum tree C++ int max

【问题描述】

 给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子

【输入格式】

第一行:n(结点数<=100),m(边数<=200)。  

以下m行;每行两个结点x和y,表示y是x的孩子(x,y<=1000)。

【输出格式】

第一行:树根:root。

第二行:孩子最多的结点max。

第三行:max的孩子,按照从小到大的顺序输出。

【输入样例】

9 8
1 2
1 3
1 4
2 5
2 6
7 8
7 9
4 7

【输出样例】

1
1
2 3 4
#include<bits/stdc++.h>
using namespace std;


struct node{
	int data;
	int father;
	int sonnum=0;
	int son[10000];
};
node tree[10000];


int n,m,x,y,a=INT_MIN;


int main(){
    cin>>n>>m;
    
    
    for(int i=0;i<m;i++){
		cin>>x>>y;
		tree[y].father=x;
		a=max(a,x);
		tree[x].son[tree[x].sonnum+1]=y;
		tree[x].sonnum++;
	}
	
	
	for(int i=1;i<=a;i++){
		if(tree[i].father==0){
			cout<<i<<endl;
			break;
		}
	}
	
	
	int b=INT_MIN,c;
	for(int i=0;i<=a;i++){
		if(tree[i].sonnum>b){
			c=i;
			b=tree[i].sonnum;
		}
	} 
	cout<<c<<endl;
	sort(tree[c].son,tree[c].son+b);
	
	for(int i=1;i<=b;i++){
		cout<<tree[c].son[i]<<' ';
	}cout<<endl;
	
	return 0;
}

 

标签:结点,树根,孩子,sonnum,tree,C++,int,max
From: https://blog.csdn.net/qxh10/article/details/140495357

相关文章

  • 基于SSM的校园志愿者管理系统小程序+99213(免费领源码)可做计算机毕业设计JAVA、PHP、爬
    小程序+springboot校园志愿者管理系统摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园志愿者管理系统被用户普遍使用,为方便用户能够可以随时进行在线查看校园志愿......
  • 华为OD机试D卷 --找座位--24年OD统一考试(Java & JS & Python & C & C++)
    文章目录题目描述输入描述输出描述用例题目解析java源码python源码javascript源码c源码c++源码题目描述在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存......
  • 华为OD机试D卷 --密码输入检测--24年OD统一考试(Java & JS & Python & C & C++)
    文章目录题目描述输入描述输出描述用例题目解析java源码python源码javascript源码c源码c++源码题目描述给定用户密码输入流input,输入流中字符‘<’表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密......
  • C++ 贪心算法
    理解贪心算法贪心算法采用的是贪心策略在每一步中都采取最优解(局部最优解),以期望得到最终的全局最优解例子#include<iostream>#include<bits/stdc++.h>usingnamespacestd;intmain(){ inta[510]={0};//表示每个人的打水时间的数组 intr,n,s=0;//水......
  • c++零基础知识要点整理(2)
    基本数据类型1.整数类型(1)short(短整型):占2个字节:00;         取值范围:-2^15~2^15-1(2)int(基本整数型) :占4个字节:0000;       取值范围:-2^31~2^31-1(3)long(长整型):占4个字节:0000;          取值范围:-2^31~2^31-1(4)long......
  • C++ 智能指针动态内存简单测试
    代码示例,主要来自《C++Primer》,动态内存相关那章内容。#include<iostream>#include<memory>#include<string>namespace{//未初始化的智能指针,默认保存的空指针voiddef_null_sp_test();//不是唯一用户,复制一份新的考拷贝。voidsp_unique_copy_te......
  • XX2104 培训【C++解决】
    描述某培训机构的学员有如下信息:姓名(字符串)年龄(周岁,整数)去年NOIP成绩(整数,且保证是5的倍数)经过为期一年的培训,所有同学的成绩都有所提高,提升了20%(当然NOIP满分是600分,不能超过这个得分)。输入学员信息,请设计一个结构体储存这些学生信息,并设计一个函数模拟培训......
  • C++第七弹 -- C/C++内存管理
    目录前言一.C/C++内存分布二.C语言中动态内存管理方式三.C++中动态内存管理四.operatornew与operatordelete函数五.new和delete的实现原理1.内置类型2.自定义类型六.定位new表达式(placement-new)七.常见面试题总结前言在C/C++编程中,内存管理是至关重要的......
  • C++(回调函数)
    目录1.使用函数指针2.使用函数对象(仿函数)3.使用std::function和std::bind4.小结回调函数是一种允许函数作为参数传递给另一个函数的机制。在C++中,回调函数常用于实现事件驱动编程、异步操作和可重用性等功能。C++中有多种实现回调函数的方法,包括使用函数指针、函数对象(仿函......
  • 诗意绽放,ChatMoney点亮孩子的文学之旅
    本文由ChatMoney团队出品介绍说明在中华传统文化的璀璨星空里,诗词宛如熠熠生辉的明珠,而飞花令则是其中一颗独特而耀眼的星辰。如今,我们自豪地为您推出专为孩子精心打造的飞花令机器人,为孩子们开启一场充满诗意与乐趣的文学盛宴。一、趣味互动,激发诗词热情飞花令机器人以充......