| 比赛 |
USACO2026 JAN G&P2 |
评测结果 |
AAAAEEEEEEEEEEEEEEEEE |
| 题目名称 |
COW Traversals |
最终得分 |
16 |
| 用户昵称 |
梦那边的美好BP |
运行时间 |
0.148 s |
| 代码语言 |
C++ |
内存使用 |
3.75 MiB |
| 提交时间 |
2026-01-24 10:42:28 |
显示代码纯文本
#include <cstring>
#include <iostream>
#include <vector>
using namespace std;
const int N = 4003;
int a[N];
vector<int> to[N];
int bl[N], d[N];
bool vis[N];
void dfs(int u) {
vis[u] = 1;
for (auto i : to[u]) {
if (!d[i] && !vis[i]) {
bl[i] = bl[u];
dfs(i);
}
}
}
int main() {
freopen("COW.in", "r", stdin);
freopen("COW.out", "w", stdout);
int n, m;
cin >> n;
if (n > 1e5) {
return 1;
}
for (int i = 1; i <= n; i++) {
cin >> a[i];
to[a[i]].push_back(i);
}
cin >> m;
while (m--) {
int c;
char v;
cin >> c >> v;
bl[c] = d[c] = v;
memset(vis, 0, sizeof(vis));
dfs(c);
int cc = 0, co = 0, cw = 0;
for (int i = 1; i <= n; i++) {
if (bl[i] == 'C') cc++;
if (bl[i] == 'O') co++;
if (bl[i] == 'W') cw++;
}
cout << cc << " " << co << " " << cw << endl;
}
return 0;
}