怎么输入怎么输出 求调
查看原帖
怎么输入怎么输出 求调
1179543
514czh楼主2024/9/4 13:20
#include<bits/stdc++.h>
using namespace std;
struct shu{
	int bb;
	char c;
	int l=0;
	int r=0;
	bool gl=0;	
}a[100005];
int n,q,qn;
void f(int x,int zt){
		zt+=a[x].gl;
		zt%=2;
		if(zt) if(a[x].c=='0') a[x].c='1';else a[x].c='0';
		if(a[x].l){
			f(a[x].l,zt);
		}
		if(a[x].r){
		f(a[x].r,zt);
		}
		return ;
}
signed main(){
	cin>>n;
	for(int i=2;i<=n;i++){
		cin>>a[i].bb;
		if(a[a[i].bb].l=0)
		a[a[i].bb].l=i;
		else a[a[i].bb].r=i;
	}
	for(int i=1;i<=n;i++){
		cin>>a[i].c;
	}
	cin>>q;
	for(int i=1;i<=q;i++){
		cin>>qn;
		a[qn].gl!=a[qn].gl;
	}
	f(1,0);
	for(int i=1;i<=n;i++){
		cout<<a[i].c;
	}
	
	
    return 0;
}
2024/9/4 13:20
加载中...