大家帮我看一看为什么97
#include<bits/stdc++.h> using namespace std; using ll=long long; const int N=500005; vector<int> G[N]; ll f[N],ans; int c[N],a[N]; char s[N]; void dfs(int u,int fa){ a[u]=a[fa]+(s[u]=='('?1:-1); f[u]=f[fa]+c[a[u]]; c[a[u]]++; int tmp=0; if(s[u]==')')tmp=c[a[fa]],c[a[fa]]=0; for(auto v:G[u]){ dfs(v,u); } c[a[u]]--; if(s[u]==')')c[a[fa]]=tmp; } int main(){ int n; scanf("%d",&n); scanf("%s",s+1); for(int i=2,x;i<=n;i++){ scanf("%d",&x); G[x].push_back(i); } c[0]++; dfs(1,0); for(int u=1;u<=n;u++)ans^=u*f[u]; printf("%lld\n",ans); return 0; }