zoukankan      html  css  js  c++  java
  • 找树根和孩子

    找树根和孩子
    时间限制:1秒 内存限制:128M
    题目描述


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

    输入描述


    第一行:n(结点个数≤100),m(边数≤200)。
    以下m行:每行两个结点x和y,表示y是x的孩子(x,y≤100)。

    输出描述


    第一行:树根:root;
    第二行:孩子最多的结点max(多个只输出编号最小的结点);
    第三行:max的孩子(按编号由小到输出)。

    样例
    输入
    8 7
    4 1
    4 2
    1 3
    1 5
    2 6
    2 7
    2 8
    输出
    4

    6 7 8

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main()
    {
    int i,j,x,y,m,n,root,sum=0,Max=0,maxroot,tree[101]={0};
    cin>>n>>m;
    for(i=1;i<=m;i++)
    {
    cin>>x>>y;
    tree[y]=x;
    }
    for(i=1;i<=n;i++)
    {
    if(tree[i]==0)
    {
    root=i;
    break;
    }
    }
    for(i=1;i<=n;i++)
    {
    sum=0;
    for(j=1;j<=n;j++)
    {
    if(tree[j]==i)
    {
    sum++;
    }
    }
    if(sum>Max)
    {
    Max=sum;
    maxroot=i;
    }
    }
    cout<<root<<endl<<maxroot<<endl;
    for(i=1;i<=n;i++)
    {
    if(tree[i]==maxroot)
    {
    cout<<i<<" ";
    }
    }
    return 0;
    }

  • 相关阅读:
    python (八)迭代器、生成器、列表推导式
    python (七)装饰器
    HTML基础 (一)
    jQuery(一)
    JavaScript 练习(二)事件
    DOM节点(二)
    git操作顺序
    VUE练习(二)解决Bug
    前端环境VSCode
    JavaScript 基础基础最基础
  • 原文地址:https://www.cnblogs.com/tcwbob/p/13088545.html
Copyright © 2011-2022 走看看