社区讨论

救救孩子吧

P10722[GESP202406 六级] 二叉树参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m46wxqmk
此快照首次捕获于
2024/12/02 18:54
去年
此快照最后确认于
2024/12/02 18:59
去年
查看原帖
CPP
#include<bits/stdc++.h>
#define int long long
#define double long double
using namespace std;
const int N=1e5+10,root=1;
int n,a;
int lazy[N];
char c;
struct node{
	int father=-1;
	int kid[2]={-1,-1};
	int idx;
	int v;
}tree[N];
void dfs(int p){
	tree[p].v^=lazy[p];
	cout<<tree[p].v;
	if(tree[p].kid[0]!=-1){
		lazy[tree[p].kid[0]]^=lazy[p];
		dfs(tree[p].kid[0]);
	}if(tree[p].kid[1]!=-1){
		lazy[tree[p].kid[1]]^=lazy[p];
		dfs(tree[p].kid[0]);
	}
}
signed main(){
	cin>>n;
	for(int i=1;i<n;i++){
		cin>>a;
		tree[i].father=a;
		tree[a].kid[tree[a].idx]=i;
		tree[a].idx++;
	}for(int i=1;i<=n;i++){
		cin>>c;
		tree[i].v=c-'0';
	}cin>>n;
	while(n--){
		cin>>a;
		lazy[a]++;
		lazy[a]%=2; 
	}dfs(root);
	return 0;
}
输出错了

回复

1 条回复,欢迎继续交流。

正在加载回复...