哇8910
查看原帖
哇8910
946092
The_Herta楼主2023/8/31 10:00
#include<bits/stdc++.h>
using namespace std;
unsigned long long ans[500001],sum[500001];
vector<unsigned int> son[500001],gong;
unsigned int father[500001],v[500001];
bool used[500001];
char value[500001];
int main(){
	//freopen("brackets19.in","r",stdin);
	unsigned int n,f;
	cin>>n;
	for(unsigned int i=0;i<n;i++){
		cin>>value[i];
	}
	for(unsigned int i=1;i<n;i++){
		cin>>f;
		son[f-1].push_back(i);
		father[i]=f-1;
	}
	for(unsigned int i=0;i<n;i++){
		cout<<"i:"<<i<<endl;
		if(value[i]=='('){
			v[i]=0;
		}
		else{
			f=i;
			while((value[f]!='('||used[f])&&f!=0){
				cout<<"f:"<<f<<endl;
				f=father[f];
				//sum[i]+=v[f];
				cout<<"f:"<<f<<"value:"<<value[f]<<endl;
			}
			if(value[f]=='('&&!used[f]){
				v[i]=v[father[f]]+1;
				used[f]=1;
			}
		}
		if(i){
			sum[i]=sum[father[i]]+v[i];
		}
		cout<<"sum:"<<sum[i]<<"*i:"<<(i+1)*sum[i]<<endl;
	//	cout<<v[i];
		ans[i]=(i+1)*sum[i];
	}
	unsigned long long shuchu=0;
	for(unsigned int i=0;i<n;i++){
		shuchu^=ans[i];
	}
	cout<<shuchu;
	return 0;
}
2023/8/31 10:00
加载中...