rt,在看第一篇题解的 55pts 的思路,结果只有 10pts。
然后我把题解的 55pts 部分分代码完善了一下提交,发现只有 5pts?
是我改错了吗/kk
完善后的题解所说的 “55pts” 代码:
#include <bits/stdc++.h>
using namespace std;
int n, q;
char c[114514];
int top;
int lst[114514], s[114514], sum[114514];
int main() {
cin >> n >> c + 1;
for(int i = 1; i <= n; i ++)
{
if(c[i] == ')')
{
if(top == 0) continue;
int t = s[top];
lst[i] = lst[t - 1] + 1;
top --;
}
else if(c[i] == '(') s[++ top] = i;
sum[i] = sum[i - 1] + lst[i];
}
int ans = 0;
for (int i = 1; i <= n; i++) ans ^= (sum[i] * i);
cout << ans << endl;
}