1 条题解
-
0
#include <iostream> #include <vector> #include <algorithm> using namespace std; const int N = 1010; vector<int> g[N]; int parent[N]; void link(int x, int y) { g[x].push_back(y); parent[y] = x; } int main() { int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { parent[i] = 0; } for (int i = 1; i <= m; i++) { int x, y; cin >> x >> y; link(x, y); } //树根 int root = 0; for (int i = 1; i <= n; i++) { if (parent[i] == 0) root = i; } cout << root << endl; //孩子最多的结点 int max_children_node = 0; int max_children_count = 0; for (int i = 1; i <= n; i++) { int len = g[i].size(); if (len >= max_children_count) { max_children_count = len; max_children_node = i; } } cout << max_children_node << endl; //孩子最多的结点的孩子的编号 vector<int> children = g[max_children_node]; sort(children.begin(), children.end()); int length = children.size(); for (int i = 0; i < length; i++) { if (i != 0) cout << " "; cout << children[i]; } return 0; }
信息
- ID
- 132
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 89
- 已通过
- 32
- 上传者