比赛 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;
}