1 solutions
-
0
算法描述
使用 表示是的父亲,然后统计每个节点的孩子节点数目
代码实现
#include<bits/stdc++.h> using namespace std; const int N=2010; int tree[N]; int main() { int n,m; cin>>n>>m; for(int i=1;i<=m;i++) { int x,y; cin>>x>>y; tree[y]=x; //记录y的父亲 } int r; for(int i=1;i<=n;i++) if(tree[i]==0) //没有父亲节点 r=i; //记录根节点 cout<<r<<endl; int maxv=-1,id; for(int i=1;i<=n;i++) //枚举当前的父亲节点 { int s=0; for(int j=1;j<=n;j++) //枚举i的孩子节点 if(tree[j]==i) s++; //统计孩子数目 if(s>maxv) //更新最大值所在的位置 { maxv=s,id=i; } } cout<<id<<endl; for(int i=1;i<=n;i++) if(tree[i]==id) cout<<i<<" "; return 0; }
- 1
Information
- ID
- 1022
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 4
- Accepted
- 2
- Uploaded By