wordpress建站 域名,软装设计培训机构,在线制作二维码网站,广告流量平台题目描述
给定一棵树#xff0c;输出树的根root#xff0c;孩子最多的结点max以及他的孩子
输入
第一行#xff1a;n#xff08;0结点数100#xff09;#xff0c;m#xff08;0边数200#xff09;。
以下m行#xff1b;每行两个结点x和y#xf…题目描述
给定一棵树输出树的根root孩子最多的结点max以及他的孩子
输入
第一行n0结点数100m0边数200。
以下m行每行两个结点x和y表示y是x的孩子(x,y1000)。
其中所有结点的编号不一定是连续的
输出
第一行树根root。
第二行孩子最多的结点max如果所求的结点有多个则输出编号最大的那个。
第三行max的孩子。
样例输入
5 4
4 1
4 2
1 3
1 5
样例输出
4
4
1 2代码
#include bits/stdc.h
using namespace std;
int son[1100],fa[1100],maxx-1,maxxi;
int main()
{int n,m,x,y;cinnm;for(int i1;im;i){cinxy;fa[y]x;son[x]1;}for(int i1;i1000;i){if(fa[i]0son[i]!0)//该节点存在且该节点没父亲节点是根节点{coutiendl;break;}}for(int i1;i1000;i){if(son[i]maxxson[i]!0){maxxson[i];maxxii;}}coutmaxxiendl;for(int i1;i1000;i){if(fa[i]maxxi)//是儿子最多的节点的儿子{couti ;}}return 0;
}