Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
122191 | 就这? | 树根和宝藏 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 1247 | 2024-01-22 14:30:16 |
#include <bits/stdc++.h> using namespace std; int n, m, x, y, ans, mx; struct tree { int id, father, son; } t[110]; inline bool cmp(tree a, tree b) { return a.son > b.son; } int main() { scanf("%d%d", &n, &m); while(m--) { scanf("%d%d", &x, &y); t[x].id = x; t[x].son++; t[y].id = y; t[y].father = x; } sort(t+1, t+1+n, cmp); for(int i=1; i<=n; i++) { if(t[i].father == 0) printf("%d ", t[i].id); } printf("%d", t[1].id); return 0; } 第二种其实更简洁一点 雪花飘飘~~首选AC #include <bits/stdc++.h> using namespace std; int n, m, MAX, tmp, x[2013]; struct Tree { int root, num[201]; } f; int main() { int root; cin >> n >> m; for(int i=1,y; i<=m; i++) { cin >> x[i] >> y; if(i == 1) f.root = x[1]; if(y == f.root) f.root = x[i]; f.num[x[i]]++; } for(int i=1; i<=m; i++) { if(x[i] == x[i-1]) continue; else if(f.num[x[i]] > MAX) { tmp = x[i]; MAX = f.num[x[i]]; } } cout << f.root << ' ' << tmp << '\n'; return 0; }