急了(GESP6二叉树)
2026-08-16 19:15:51
发布于:浙江
分(洛谷 )
#include <bits/stdc++.h>
using namespace std;
int n, q, h[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;
dfs(x);
}
cout << s;
}
这里空空如也













有帮助,赞一个