- 吐槽
114514
- 2023-5-3 22:27:26 @
#include <bits/stdc++.h>
using namespace std;
int g[110][110],in[110],out[110],n,m,u,v;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v; //u是父节点,v是子节点
g[u][v]=1; //邻接矩阵标记为1
out[u]++; //记录这个节点的父节点
in[v]++; //记录它的子节点
}
int k=1;
for(int i=1;i<=n;i++){
if(in[i]==0) cout<<i<<endl;//只要没有父节点,就是根
if(out[k]<out[i]) k=i; //寻找孩子最多的节点
}
cout<<k<<endl;
for(int j=1;j<=n;j++) if(g[k][j]==1) cout<<j<<' '; //输出孩子最多的节点的孩子们
return 0;
}
0 comments
No comments so far...