40分求调
查看原帖
40分求调
1011696
_lxm楼主2024/8/26 21:19

记录直达>>>

Code

#include<bits/stdc++.h>
using namespace std;
struct tree{
	bool value;
	int l,r;
};
int n,q;
string s;
tree a[100005];
void f(int x){
	if(a[x].value==1) a[x].value=0;
	else a[x].value=1;
	if(a[x].l!=0) f(a[x].l);
	if(a[x].r!=0) f(a[x].r);
}
int main(){
	cin >>n;
	a[1].l=a[1].r=0;
	for(int i=2;i<=n;i++){
		int parent;
		cin >>parent;
		if(a[parent].l==0) a[parent].l=i;
		else a[parent].r=i;
	}
	cin >>s;
	for(int i=0;i<n;i++){
		a[i+1].value=s[i]-'0';
	}
	cin >>q;
	for(int i=1;i<=q;i++){
		int x;
		cin >>x;
		f(x);
	}
	for(int i=1;i<=n;i++){
		cout <<a[i].value;
	}

	return 0;
}

2024/8/26 21:19
加载中...