• 树—— 找树根和孩子


    题目描述

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

    输入

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

    输出

    第一行:树根:root。 
    第二行:孩子最多的结点max。 
    第三行:max的孩子。

    样例输入

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

    样例输出

    4
    2
    6 7 8

     这道题还是不难的,基本上只要思路正确,不用写多长时间。

    #include<bits/stdc++.h>
    using namespace std;
    int m,n,a[1000],b[1000],num[10000],ant=0,u,k,l,x,y,maxx=0;
    int main()
    {
    //    freopen("找树根和孩子.in","r",stdin);
        //freopen("找树根和孩子.out","w",stdout);
        cin>>n>>m;
        for(int  i=1;i<=m;i++)
        {
            cin>>x>>y;
            a[y]=x;
        }
        for(int i=1;i<=n;i++)
        {
            if(a[i]==0)
            {
                u=i;
                break;
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(a[j]==i)
                {
                    ant++;
                }
            }
            if(ant>maxx)
            {
                maxx=ant;
                l=i;
            }
            ant=0;
        }
        cout<<u<<"
    ";
        cout<<l<<"
    ";
        for(int i=1;i<=n;i++)
        {
            if(a[i]==l)
            cout<<i<<" ";
        }
        return 0;
    } 
  • 相关阅读:
    第四周JSP作业
    jsp第二次作业
    3.4软件管理与测试作业
    jsp3月3日作业
    课后listview作业
    安卓sql
    activity带数据跳转
    answers
    阿里云ESC无法使用python发送邮件的问题
    Ubuntu 更改时区
  • 原文地址:https://www.cnblogs.com/5t2y0/p/9558865.html
Copyright © 2020-2023  润新知