1 solutions

  • 3
    @ 2024-10-23 15:32:56

    算法描述

    使用tree[i]=jtree[i]=j 表示jjii的父亲,然后统计每个节点的孩子节点数目

    代码实现

    #include<bits/stdc++.h>
    using namespace std;
    const int N=2010;
    vector<int> g[N];
    int cnt[N];
    bool st[N];
    int main()
    {
    	int n,m;
    	cin>>n>>m;
    	while(m--)
    	{
    		int x,y;
    		cin>>x>>y;
    		g[x].push_back(y);
    		st[y]=1;//表示y一定不是根
    	}
    	int root=0;
    	int maxv=0;
    	for(int i=1;i<=n;i++)
    	{
    		if(st[i]==0) //找到根节点
    		{
    			root=i;
    		}
    		if(g[i].size()>g[maxv].size()) //维护孩子最多的节点
    		{
    			maxv=i;
    		}
    	}
    	cout<<root<<endl;
    	cout<<maxv<<endl;
    	sort(g[maxv].begin(),g[maxv].end());
    	for(auto x:g[maxv])
    	{
    		cout<<x<<" ";
    	}
    	return 0;
    }
    
    • 1

    Information

    ID
    1022
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    18
    Accepted
    7
    Uploaded By