P10772 悬关,求优化awa/40pts
  • 板块学术版
  • 楼主Wangbingxiang
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/25 22:39
  • 上次更新2024/9/26 13:53:41
查看原帖
P10772 悬关,求优化awa/40pts
889828
Wangbingxiang楼主2024/9/25 22:39
#include<bits/stdc++.h>
using namespace std;
long long n,x,q;
string s;
long long head[10000010],tot,c[10000010];
struct Tree{
	long long to,from;
}t[10000010];
void add(long long u,long long v){
	t[++tot].to=v;
	t[tot].from=head[u];
	head[u]=tot;
}
void dfs(long long u){
	for(long long i=head[u];i;i=t[i].from){
		long long v=t[i].to;
		c[v]=1-c[v];
		dfs(v);
	}
}
int main(){
	scanf("%lld",&n);
	for(long long i=2;i<=n;i++){
		scanf("%lld",&x);
		add(x,i);
	}
	cin>>s;
	scanf("%lld",&q);
	for(long long i=0;i<n;i++){
		if(s[i]=='0') c[i+1]=0;
		else c[i+1]=1;
	}
	
	while(q--){
		scanf("%lld",&x);
		dfs(x);
		c[x]=1-c[x];
	}
	for(long long i=1;i<=n;i++) printf("%lld",c[i]);
	return 0;
}

2024/9/25 22:39
加载中...