用户:
只会咕咕咕的鸽子希一查看:2 回复:5 评论:2 创建时间:2021-08-03T10:38:53
A找树根和孩子 #include<bits/stdc++.h> usingnamespacestd; constintN=105; structtree{ intprt=-1,num;//prt:父亲num:编号 vector<int>cld;//cld:所有的孩子 }a[N]; intn,m,root;//root变量后面没用到可以不看 boolcmp(treea,treeb){//自定义比较函数孩子多的排在前面若孩子一样多按编号排序 if(a.cld.size()!=b.cld.size())returna.cld.size()>b.cld.size(); returna.num>b.num; } intmain(){ cin>>n>>m; for(inti=1;i<=n;i++)a[i].num=i;//编号赋值避免排序后编号不同 for(inti=1;i<=m;i++){ intx,y; cin>>x>>y; a[x].cld.push_back(y); a[y].prt=x; } sort(a+1,a+1+n,cmp); for(inti=1;i<=n;i++)if(a[i].prt==-1){cout<<a[i].num<<endl;break;} cout<<a[1].num<<endl; for(inti=0;i<a[1].cld.size();i++)cout<<a[1].cld[i]<<""; return0; }