啥这都能过?(GESP6二叉树)
2026-08-16 19:15:17
发布于:浙江
接上一篇 https://www.acgo.cn/discuss/rest/90638
不是,来一个 数组异或一下 TLE 马上消除?(洛谷。。。原样, 分)
#include <bits/stdc++.h>
using namespace std;
int n, q, h[100009], cnt[100009];
string s;
vector<int> a[100009];
void dfs(int x) {
if (s[x - 1] == '1') s[x - 1] = '0';
else s[x - 1] = '1';
for (int k : a[x])
if (!h[k]) {
h[x] = 1;
dfs(k);
h[x] = 0;
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 2; i <= n; ++i) {
int x;
cin >> x;
a[x].push_back(i);
}
cin >> s >> q;
while (q--) {
int x;
cin >> x;
cnt[x] ^= 1;
}
for (int i = 1; i <= n; ++i)
if (cnt[i]) dfs(i);
cout << s;
}
这里空空如也













有帮助,赞一个