- 没有特别的
- 我加了一个记录孩子数量的数组
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,t[101],x,y,f[101];
int main()
{
cin>>n>>m;
memset(t,0,sizeof(t));
memset(f,0,sizeof(f));
for(int i=1;i<=m;i++){
cin>>x>>y;
t[y]=x;//标记
f[x]++;//孩子数量
}
x=0,y=0;
for(int i=1;i<=n;i++){
if(t[i]==0)//找到根节点
cout<<i<<endl;
if(f[i]>x)x=f[i],y=i;//找孩子最多的结点
}
cout<<y<<endl;
//输出孩子
for(int i=1;i<=n;i++)
if(t[i]==y)cout<<i<<" ";
cout<<endl;
return 0;
}