5Pts求助……
查看原帖
5Pts求助……
348511
原子げんし楼主2020/10/20 22:22

本蒟蒻不会写栈,所以写了这玩意:

#include<bits/stdc++.h>
using namespace std;
vector<int>g[500010];
string s;
long long  ans=0;
void dfs(int x,string y) {
	//cout<<y<<endl;
	int l=0,r=0,cnt=0;
	for(int i=0;i<y.size();i++) {
		if(y[i]=='(') {
			l++;
		} else {
			r++;
		}
	}
	cnt=min(l,r);
	ans^=(x*cnt);
	for(int i=0;i<g[x].size();i++) {
		int nx=g[x][i];
		string ny=y;
		ny.push_back(s[nx-1]);
		dfs(nx,ny);
	}
}
int main() {
 	int n;
	cin>>n;
	cin>>s;
	for(int i=2;i<=n;i++) {
		int x;
		cin>>x;
		g[x].push_back(i);
	}
	string t=s.substr(0,1);
	dfs(1,t);
	cout<<ans<<endl;
	return 0;
}

所以哪里错了?

2020/10/20 22:22
加载中...