找树根和孩子
来源:互联网 发布:平面设计软件ai 编辑:程序博客网 时间:2024/05/01 19:29
Problem Description
给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子
Input
输入的第一行为T,表示测试数据的组数。对于每组测试数据的第一行:n(结点数<=100),m(边数<=200)。以下m行;每行两个结点x和y,表示y是x的孩子(x,y<=1000)。
Output
对于每组测试数据:
第一行:树根:root。
第二行:孩子最多的结点max。
第三行:max的孩子。
第一行:树根:root。
第二行:孩子最多的结点max。
第三行:max的孩子。
Sample Input
18 74 14 21 31 52 62 72 8
Sample Output
42 6 7 8
//标程:
#include<stdio.h>#include<map>using namespace std;struct ss{int x,y;}p[210];int main(){//freopen("a.txt","r",stdin); int t,n,m,i,j,a,b,flag,ans;map<int,int> m1,m2;scanf("%d",&t);while(t--){m1.clear(), m2.clear(); scanf("%d%d",&n,&m);for(i=0;i<m;i++) {scanf("%d%d",&p[i].x,&p[i].y);m1[p[i].x]++, m2[p[i].y]++;}map<int,int>::iterator it1,it2;ans=flag=0; for(it1=m1.begin();it1!=m1.end();++it1){ans=it1->first;for(it2=m2.begin();it2!=m2.end();++it2)if(ans==it2->first) flag=1;if(!flag) break;}printf("%d\n",ans);int maxn=0,node=0; for(it1=m1.begin();it1!=m1.end();++it1)if(it1->second>maxn) maxn=it1->second, node=it1->first; printf("%d\n",node);flag=0; for(i=0;i<m;i++){ if(p[i].x==node && flag==1) printf(" %d",p[i].y);if(p[i].x==node && flag==0) printf("%d",p[i].y), flag=1;}printf("\n");}return 0;}
- 找树根和孩子
- 找树根和孩子
- 找树根和孩子
- 26791: 找树根和孩子
- 练习赛10.2.找树根和孩子
- 数据结构 找树根和孩子(树)
- 树根
- 孩子找父亲 ,父亲找孩子的写法
- C. 袋鼠妈妈找孩子
- ecnu3260(袋鼠妈妈找孩子)
- 孩子找不到家的感觉
- 孩子找不到家的感觉
- 上Craigslist网找孩子他爹
- ecnu 3260 袋鼠妈妈找孩子
- EOJ 3260:袋鼠妈妈找孩子
- EOJ 3260 袋鼠妈妈找孩子 题解
- QuickFindChildAndComponent (Unity快速找孩子的组件)
- 二叉树根据前序遍历和中序遍历构造
- 【转】Linux命令行技巧
- java web 学习路线
- 单纯形法
- 什么是java序列化,如何实现java序列化?
- HashMap的工作原理
- 找树根和孩子
- 通用定时器PWM输出
- 【Java基础】面向对象(12)-----异常总结
- PKU 1463
- HashMap的工作原理(转)
- 如何解决sql server 2008附加数据库失败
- emacs配置
- 我们应该知道的软件开发过程
- redhat6.4简便安装yum