QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#53937#2008. 括号树james1BadCreeper100 ✓137ms66664kbC++17905b2022-10-06 13:14:252022-10-06 13:14:26

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-10-06 13:14:26]
  • 评测
  • 测评结果:100
  • 用时:137ms
  • 内存:66664kb
  • [2022-10-06 13:14:25]
  • 提交

answer

#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>

using namespace std;
typedef long long i64;

int n, fa[500005];
i64 ans = 0, f[500005], g[500005];
char s[500005];
vector <int> son[500005];
stack <int> v;

void dp(int x)
{
    int tmp = -1;
    if (s[x] == ')')
    {
        if (!v.empty())
        {
            tmp = v.top();
            g[x] = g[fa[tmp]] + 1;
            v.pop();
        }
    }
    else v.push(x);
    f[x] = f[fa[x]] + g[x];
    for (int i = 0; i < son[x].size(); ++i)
        dp(son[x][i]);
    if (tmp != -1) v.push(tmp);
    else if (!v.empty()) v.pop();
}

int main(void)
{
    scanf("%d%s", &n, s + 1);
    for (int i = 2, x; i <= n; ++i)
        scanf("%d", &x), son[x].push_back(i), fa[i] = x;
    dp(1);
    for (int i = 1; i <= n; ++i)
        ans ^= f[i] * i;
    printf("%lld\n", ans);
    return 0;
}

详细

Test #1:

score: 5
Accepted
time: 1ms
memory: 15396kb

input:

7
(()()((
1 2 3 4 5 6

output:

15

result:

ok "15"

Test #2:

score: 5
Accepted
time: 2ms
memory: 15456kb

input:

8
)())((()
1 2 3 4 5 6 7

output:

19

result:

ok "19"

Test #3:

score: 5
Accepted
time: 2ms
memory: 15584kb

input:

198
)))())(())())(()))(()))))()(()(()()))())(()()(()()())()()))(())(())())((()((()((()(((())((()())))))))()((()((())(()))))(()))))())(())(())((()()())()))())())(()()((())()())(())())())))))()())(())))((
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3...

output:

3273

result:

ok "3273"

Test #4:

score: 5
Accepted
time: 4ms
memory: 15588kb

input:

200
))((())())())(())))()))())(((()()((((()((()(((((())())(()))())()))((((())((()()(())()()()())(()(((()))))())(()))()(())))(())))))(()(((()((())()((()(((())(()(()))((()((())()((()))))(()(((()))()()((()))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35...

output:

21364

result:

ok "21364"

Test #5:

score: 5
Accepted
time: 4ms
memory: 15756kb

input:

1949
(())))((()))(()))()()((())()(()))())((()()))(())))((())))()()(())((())(())()(()((()((((()((())()))()(()(((()((()))((()(())))))()))((((())))()))))()()())(()((()()((())))))))))()(((())((()))()((()(()()(()())))(()(()))()(()()((())(())())())())((((()))(()))((()))()()(((((((())())()))))))()(()(())((...

output:

1098479

result:

ok "1098479"

Test #6:

score: 5
Accepted
time: 3ms
memory: 15676kb

input:

1926
())(((()()()))(()))())()))((((()(((())())())((((())()()))((())(())))))))(())))()))()(()()()))())())()((())())())()))()))())())((()((()(())()()))))(()(()()(()(((()()))(())())))))()()(()()()()())))()()()(()((()(((())())())(()))(())(()))())))((()(()((((()())((((()()((((((()))((((()))))()()()))(())...

output:

531389

result:

ok "531389"

Test #7:

score: 5
Accepted
time: 2ms
memory: 15680kb

input:

2000
))())())()())))(()()(())))))(()((((()(()())())())))(()())))(()))()()())(())()((()()(()()))(())())))()))()(()))())))()(()((()())()))))()))())()(()(()))))(())()(())()(()())()))()()))()))()()))())()()))())(())()())))))))())))))())()))))((()(((((((((((()(()((((()()(())(()))((()))))(())))((()(((()((...

output:

63861

result:

ok "63861"

Test #8:

score: 5
Accepted
time: 2ms
memory: 15628kb

input:

1998
()))((()((()(()))))()((())()())())((((()))((((()()((((((())())))((()))()()))(())()((()))))()(())(()()()(()()())()))())((((())))(()(()()(()))))())((()))(((()((((())(((()((((()()))())(()))))((())()()()()()(((((()()())))))((()())(((()()()())()))))())())((((((()))(((()())(()))))()))))()()()(((()))(...

output:

1416

result:

ok "1416"

Test #9:

score: 5
Accepted
time: 3ms
memory: 15524kb

input:

1999
)))(((()(()()()(()))())((()()()(()))(((()())()))))))))(()()))(((())((()))))())((()(())()(((())))))()(())()(((())((((())))(()())))()))))()((()(((((()(((()))())(()(()(()))((()()()()()(()(())((((()))())(())((((()()()((()(()()())()(((()(()))((()())((((((()(())))()()))))))((((((()((())()())())())(()...

output:

27926

result:

ok "27926"

Test #10:

score: 5
Accepted
time: 3ms
memory: 15600kb

input:

2000
()((()()(((()(()()))()()(((()))((()))()()()(((()()(())((()(((())(()()))()))(((((())()(()()()()))()(((()(())()()())()()))))(()()()()((())()((((((()))))()))()((((()))()))))))(((((((())()))()))(())(()()(()((())))(())))))())))()))))))(()))(()(())())())((((()(((((((()((())((((()(()))((())((()()()())...

output:

10983

result:

ok "10983"

Test #11:

score: 5
Accepted
time: 25ms
memory: 30020kb

input:

99997
()(((()()))()()(())(()))(((()(((())()((())((()))))))))()(((())((())())())())()()(()())()(((()(()))()((((())((())))))))(())((()))((()(())))()((()(()))())()()(())()()()(()()())()((()(((()))))((()())))()((()())((()(()))((()()(()))()())(()()())(()()())()((()()(())())()()(((((()()()()))))))))()()((...

output:

3818846184119

result:

ok "3818846184119"

Test #12:

score: 5
Accepted
time: 32ms
memory: 30072kb

input:

99998
(((()((((()(()))()((()))))))))(()())()()()()()()((()))(()(())()((())((((()((()())()))()((())(()))(())()))))())(()()())()(())()()()((()(((()()))()()()()))((()())))((((((()()(())(()))((())(())))())())))()(()(()))((()))()(((()()))(()((())()))())(())((())(()((((())()((())))()())))(()))((((((((()))...

output:

6201171476965

result:

ok "6201171476965"

Test #13:

score: 5
Accepted
time: 20ms
memory: 29960kb

input:

99999
()(())()(())()()()()(()())()()(())()(()()()()(()()()()(()())(())((((()((()()))((()))())))(()(())))))()(()((()()()((())))))()((()()()()()((()))))()((()))()(())(()(()())()())()(()()()()(()))()()()()((((())(()(())()())())))((()())())()()()((())())((())()(((())())()))((()()))()(())()()(())()()((()...

output:

242124759663

result:

ok "242124759663"

Test #14:

score: 5
Accepted
time: 12ms
memory: 29964kb

input:

100000
()(()())()()((((())((())()(((()))))()())()(()((())()))()()))(((()(((()(())))))))((()()()))()(())()()(((()()(()(()()(()))((((()))))((((()())())()))))))(()(()))()(()()()())(((((((())))))))(((((())))((())())))()(()()(((()(())(((()(())))))(()()))(())))()()(())()()()((())((()()(()))(())))(((((()((...

output:

5113850219609

result:

ok "5113850219609"

Test #15:

score: 5
Accepted
time: 22ms
memory: 25624kb

input:

99999
((()()()(((()())(()))()((())))))(((())())()()())(()()(()))()()()()(()((()()((((())))))))()()()()()(())((()(((((((()(()))()((())()((()(())(())(()()))))))))))))(())()()(()())(())()(())()()((()()((())()((())))))((()))()()()(())(((((()())))))()()(())()((((())()())(((()))())))()(()())()()()()()()()...

output:

2085082970032

result:

ok "2085082970032"

Test #16:

score: 5
Accepted
time: 9ms
memory: 26156kb

input:

100000
()((())(()()())(()()))(()())(())()((()()((())(()((()()(()))))((())))))()((()((()((())())((()((()))))))))()(()())(())()(())()()((((()())))(())(())(()))((())(()((((((()())(((()))))))))))(()(()())())((()()))()(())()()(()((((()))(()()(((((()((())))()())()))()(())())))))()()(()((((())))((((())))))...

output:

2112798541955

result:

ok "2112798541955"

Test #17:

score: 5
Accepted
time: 109ms
memory: 66476kb

input:

500000
(())()((()))(((())))()()()()(())()()(())()(())()(((())))(((())))(())()()()()(())((()()))(((()())))()()()((()()))()((()()))()()()()(())(()())()(()())()(())()()()()()()(())(()()())()()()(()())(((())))()()(())()()()((()))((((()))))(())(())(())()()()()()()()()()()(())()()()()(())(())(())()()()()(...

output:

487466589970316

result:

ok "487466589970316"

Test #18:

score: 5
Accepted
time: 121ms
memory: 66140kb

input:

500000
()()()()((((()))))((()))(())(()(()))()(())(())()()(()()(()))()(()())()((()(())))(())(())()(()())()(())(())((()))()(()(()))()()()(())(())()()()()()()()()(())(()())()(((())))((()))()()()()()()()()()()()()()(())()(()())()(((())))(())()()()(())()(())(((())))()()(((())))()()(())((()))(())()()()(((...

output:

1047922056418682

result:

ok "1047922056418682"

Test #19:

score: 5
Accepted
time: 137ms
memory: 66664kb

input:

500000
()()(())(())()()()(((())((()(()()(()))(()))((()())))))(()(()((((()))()()((()(()(())(((()(((((()))(()())()))))(()))))))())(((())())))(((()))(()()()))))(())(()())()(())(()())()()()()(((()())(())((()(((())))()((((())()())))))())())()()(((()())))(()((())))()()()(()())()(())((()))((()))()()()((()(...

output:

1616950739745800

result:

ok "1616950739745800"

Test #20:

score: 5
Accepted
time: 96ms
memory: 66628kb

input:

500000
()((()(())))()((()())((())()())(())())((())())()((()))(())((()()()))()(()())(()(()))()(()(((((((()()()))((())))))((()())())()((()()((()((()))))())))(())))()()((()(((((()((()((())())))(()))))))))()()()()()()(()()()(()((()))))()((()))(()()()((()(())()()))(((((((()())))()()))())))()()(())((()))(...

output:

1464802790801058

result:

ok "1464802790801058"

Extra Test:

score: 0
Extra Test Passed