QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#429846#8724. SeptemberMODDI14 174ms31476kbC++202.8kb2024-06-02 22:47:542024-06-02 22:47:55

Judging History

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

  • [2024-06-02 22:47:55]
  • 评测
  • 测评结果:14
  • 用时:174ms
  • 内存:31476kb
  • [2024-06-02 22:47:54]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vl;
#define pb push_back
#define mp make_pair
int in[100100], out[100100], sz[100100], timer = 0, logg;
vi G[100100];
template <class T> class BIT {
private:
    int size;
    vector<T> bit;
    vector<T> arr;

public:
    BIT(int size) : size(size), bit(size + 1), arr(size) {}

    void set(int ind, int val) { add(ind, val - arr[ind]); }

    void add(int ind, int val) {
        arr[ind] += val;
        ind++;
        for (; ind <= size; ind += ind & -ind) { bit[ind] += val; }
    }

    T pref_sum(int ind) {
        ind++;
        T total = 0;
        for (; ind > 0; ind -= ind & -ind) { total += bit[ind]; }
        return total;
    }
};
vector<vector<int>>up;
void dfs(int node, int prev){
    in[node] = timer++;
    sz[node] = 1;
    up[node][0] = prev;
    for(int i = 1; i <= logg; i++){
        up[node][i] = up[up[node][i-1]][i-1];
    }
    for(auto next : G[node]){
        if(next != prev){
            dfs(next, node);
            sz[node] += sz[next];
        }
    }
    out[node] = timer;
}
bool is_ancestor(int u, int v){
    return in[u] <= in[v] && out[u] >= out[v];
}
int lca(int u, int v){
    if(is_ancestor(u, v))   return u;
    if(is_ancestor(v, u))   return v;
    for(int i = logg; i >= 0; i--){
        if(!is_ancestor(up[u][i], v))   u = up[u][i];
    }
    return up[u][0];
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>>S){
    if(M > 1)   return 0;
    for(int i = 0; i <= N; i++)  G[i].clear();
    memset(in, 0, sizeof in);
    memset(out, 0, sizeof out);
    memset(sz, 0, sizeof sz);
    timer = 0;
    for(int i = 1; i < F.size(); i++){
        G[F[i]].pb(i);
        G[i].pb(F[i]);
    }
    logg = ceil(log2(N));
    up.assign(N, vector<int>(logg+1));
    dfs(0, 0);
    BIT<long long> bit(N+10);
    int ans = 0, not_out = -1;
    for(auto idx : S[0]){
        bit.add(in[idx], 1);
        if(not_out == -1)   not_out = idx;
        else{
            not_out = lca(not_out, idx);
        }
        ll end_sum = bit.pref_sum(out[not_out]-1);
        ll start_sum;
        if(in[not_out] == 0)    start_sum = 0;
        else start_sum = bit.pref_sum(in[not_out]-1 );
        if(end_sum - start_sum == sz[not_out]){
            ans++;
            not_out = -1;
        }
    }
    return ans + (not_out == 0);
}
/*int main(){
    cout<<solve(7, 1, {-1, 0, 1, 0, 2, 4, 0}, {{3, 6, 5, 2, 4, 1}})<<endl;
    cout<<solve(10, 1, {-1, 0, 0, 0, 0, 2, 1, 3, 3, 6}, {{5, 9, 6, 4, 7, 2, 3, 8, 1}})<<endl;
    cout<<solve(7, 1, {-1,0, 0, 2, 0, 2, 2}, {{3, 5, 6, 2, 1, 4}})<<endl;
    cout<<solve(6, 1, {-1, 0, 0, 1, 2, 0}, {{3, 4, 2, 1, 5}})<<endl;
}*/

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 11
Accepted
time: 1ms
memory: 4964kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 0 2 3 3 5
1 6 4 3 5 2
10 1
0 1 2 0 3 0 5 4 8
9 7 6 8 4 5 3 2 1
7 1
0 0 0 1 3 0
2 4 1 6 5 3
6 1
0 0 1 1 3
4 5 2 3 1

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
5
9
6
5

result:

ok 5 lines

Test #2:

score: 0
Accepted
time: 1ms
memory: 5832kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 1 0 2 4 0
3 6 5 2 4 1
10 1
0 0 0 0 2 1 3 3 6
5 9 6 4 7 2 3 8 1
7 1
0 0 2 0 2 2
3 5 6 2 1 4
6 1
0 0 1 2 0
3 4 2 1 5

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
5
8
6
5

result:

ok 5 lines

Test #3:

score: 0
Accepted
time: 1ms
memory: 5020kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 0 1 3 4 5
6 2 5 4 3 1
10 1
0 0 2 3 4 4 6 7 8
5 9 1 8 7 6 3 4 2
7 1
0 1 1 3 4 4
2 6 5 4 3 1
6 1
0 1 2 2 3
3 5 4 1 2

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
6
8
6
3

result:

ok 5 lines

Test #4:

score: 0
Accepted
time: 1ms
memory: 6564kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 0 1 2 4 4
6 5 4 1 3 2
10 1
0 1 2 3 4 5 6 7 7
8 9 7 5 6 2 4 3 1
7 1
0 1 2 2 4 5
3 6 4 5 1 2
6 1
0 0 1 2 4
5 4 2 3 1

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
5
6
4
5

result:

ok 5 lines

Test #5:

score: 0
Accepted
time: 1ms
memory: 6328kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 1 0 2 0 4
5 3 6 4 1 2
10 1
0 1 0 3 4 1 1 1 2
9 6 7 5 4 3 8 2 1
7 1
0 0 2 0 4 5
6 3 1 2 5 4
6 1
0 0 1 3 1
5 3 1 2 4

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
5
9
6
2

result:

ok 5 lines

Test #6:

score: 0
Accepted
time: 0ms
memory: 4720kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 1 2 2 2 5
6 4 5 3 1 2
10 1
0 0 1 0 1 2 4 4 4
7 9 6 5 3 2 4 1 8
7 1
0 1 1 0 2 5
6 4 2 5 3 1
6 1
0 0 2 2 1
3 5 4 2 1

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
5
7
5
5

result:

ok 5 lines

Test #7:

score: -11
Wrong Answer
time: 0ms
memory: 4964kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
4
7 1
0 0 2 2 3 4
1 5 6 3 4 2
10 1
0 0 2 3 3 4 6 7 7
8 1 9 5 6 7 4 3 2
7 1
0 0 1 2 4 4
6 3 5 1 4 2
6 1
0 0 2 2 3
3 1 5 4 2

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
6
8
6
1

result:

wrong answer 5th lines differ - expected: '3', found: '1'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 5
Accepted

Test #17:

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

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
53
10 1
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
9 7 8 5 6 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
8 9 7 5 6 3 2 4 1
10 1
0 1 2 3 4 5 6 7 8
8 9 6 7 5 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
8 9 7 5 6 3 4 2 1
10 1
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 2 3 1
10 1
0 1 2 3 4 5 6...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
9
7
5
7
6
8
6
8
7
6
4
5
8
6
9
7
7
6
8
7
30
29
24
20
22
59
567
58
33
25
30
37
34
7
3
8
4
8
7
6
4
5
7
6
6
8
4
6
5
7
6
9
6

result:

ok 54 lines

Test #18:

score: 0
Accepted
time: 3ms
memory: 6768kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
53
10 1
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 2 3 1
10 1
0 1 2 3 4 5 6 7 8
8 9 7 6 5 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
8 9 5 7 6 3 1 2 4
10 1
0 1 2 3 4 5 6 7 8
9 7 8 6 5 4 3 1 2
10 1
0 1 2 3 4 5 6 7 8
8 9 7 6 5 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
9 8 6 7 3 4 5 1 2
10 1
0 1 2 3 4 5 6...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
8
8
3
7
8
5
4
3
7
7
8
6
9
5
3
8
3
1
6
4
35
34
25
9
30
2
309
61
9
21
32
8
31
5
6
8
8
8
7
7
8
8
2
7
7
6
2
7
7
2
3
5
8

result:

ok 54 lines

Test #19:

score: 0
Accepted
time: 0ms
memory: 6100kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
53
10 1
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 2 3 1
10 1
0 1 2 3 4 5 6 7 8
9 7 6 8 4 3 2 1 5
10 1
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
9 8 6 7 5 3 4 2 1
10 1
0 1 2 3 4 5 6 7 8
9 7 8 5 6 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 3 2 1
10 1
0 1 2 3 4 5 6...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
8
3
9
7
7
9
6
4
5
6
5
7
6
8
7
7
6
7
7
5
19
23
33
38
27
75
833
80
21
30
34
17
30
6
3
7
7
6
8
5
4
9
7
7
7
8
4
8
6
6
8
8
8

result:

ok 54 lines

Test #20:

score: 0
Accepted
time: 2ms
memory: 5160kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
53
10 1
0 1 2 3 4 5 6 7 8
9 8 6 7 2 5 3 1 4
10 1
0 1 2 3 4 5 6 7 8
5 7 9 2 6 4 3 1 8
10 1
0 1 2 3 4 5 6 7 8
9 7 8 6 5 4 3 2 1
10 1
0 1 2 3 4 5 6 7 8
8 9 7 6 5 4 2 3 1
10 1
0 1 2 3 4 5 6 7 8
7 8 6 5 4 1 3 9 2
10 1
0 1 2 3 4 5 6 7 8
8 9 7 6 4 5 3 2 1
10 1
0 1 2 3 4 5 6...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
4
1
8
7
1
7
5
3
5
1
7
4
4
7
9
2
6
4
8
4
6
8
22
23
30
78
852
78
32
29
28
13
34
7
8
7
7
8
3
3
7
9
7
5
9
8
6
8
7
9
8
8
9

result:

ok 54 lines

Subtask #4:

score: 0
Skipped

Dependency #1:

0%

Subtask #5:

score: 0
Wrong Answer

Dependency #3:

100%
Accepted

Test #29:

score: 0
Wrong Answer
time: 1ms
memory: 3712kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
53
10 5
0 1 2 3 4 5 6 7 8
9 7 6 8 5 3 4 1 2
9 7 6 8 5 4 3 1 2
9 7 6 8 5 3 4 1 2
9 6 8 7 5 3 4 2 1
9 6 8 7 5 4 3 2 1
10 5
0 1 2 3 4 5 6 7 8
9 8 7 6 5 4 3 2 1
9 8 7 5 4 6 3 1 2
9 8 7 5 6 4 3 2 1
9 8 7 5 6 4 3 1 2
9 8 7 6 4 5 3 2 1
10 5
0 1 2 3 4 5 6 7 8
8 9 7 5 6 4 2 3...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

wrong answer 2nd lines differ - expected: '5', found: '0'

Subtask #6:

score: 0
Skipped

Dependency #1:

0%

Subtask #7:

score: 9
Accepted

Dependency #3:

100%
Accepted

Test #41:

score: 9
Accepted
time: 174ms
memory: 31300kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
2225
50 1
0 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 36 37 38 39 40 41 42 43 44 45 46 47 48
49 48 47 45 46 43 44 42 41 40 39 38 37 35 36 34 32 33 31 30 28 29 26 27 25 23 24 22 20 21 18 17 19 16 15 14 13 12 11 10 ...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
37
42
32
34
38
33
30
42
43
29
28
29
42
37
42
30
30
30
29
30
35
34
29
33
28
37
41
29
35
35
32
40
45
36
30
31
38
42
42
34
37
23
33
43
36
37
36
20
33
30
38
41
38
38
32
39
42
31
34
30
32
41
40
30
23
40
40
45
41
37
40
36
42
33
27
34
35
36
32
31
34
37
36
39
46
42
42
39
25
...

result:

ok 2226 lines

Test #42:

score: 0
Accepted
time: 157ms
memory: 31348kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
2225
50 1
0 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 36 37 38 39 40 41 42 43 44 45 46 47 48
49 48 47 46 45 43 44 42 41 39 40 38 37 36 35 34 33 31 32 30 29 28 27 26 25 23 24 22 20 19 21 17 18 16 15 14 13 12 11 10 ...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
42
41
40
36
17
35
12
39
29
41
41
34
20
33
42
36
20
36
41
25
18
37
29
15
17
11
6
39
35
7
34
37
42
40
39
44
1
3
29
39
42
20
35
42
18
39
31
26
26
35
28
7
4
42
13
24
39
19
27
40
26
14
1
39
19
44
1
6
13
38
12
6
39
38
29
40
47
38
36
43
42
43
41
20
41
6
21
44
43
37
14
44
25...

result:

ok 2226 lines

Test #43:

score: 0
Accepted
time: 174ms
memory: 31476kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
2225
50 1
0 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 36 37 38 39 40 41 42 43 44 45 46 47 48
49 47 48 46 45 43 44 42 41 40 39 37 38 36 34 35 33 32 31 30 28 29 27 26 25 23 24 21 22 20 19 18 16 17 15 14 13 12 11 10 ...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
39
37
38
34
25
31
23
43
34
39
41
34
26
28
27
33
42
42
39
36
40
34
29
34
27
42
43
22
24
35
31
37
27
29
42
29
40
44
27
41
38
27
28
41
31
35
39
32
42
44
39
39
35
38
39
34
33
31
21
39
34
37
40
43
35
40
31
32
45
29
36
34
37
41
33
46
35
36
43
32
28
40
28
33
34
42
43
28
38
...

result:

ok 2226 lines

Test #44:

score: 0
Accepted
time: 167ms
memory: 31436kb

input:

txy4h26c1rm1uv8tr3eonahd67u8h56x
2225
50 1
0 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 36 37 38 39 40 41 42 43 44 45 46 47 48
49 48 47 45 46 43 44 42 41 40 38 39 35 37 36 33 34 32 30 28 29 31 27 26 25 24 23 21 22 20 19 18 17 16 15 13 14 12 11 10 ...

output:

7ckgnn4wyi495puj3ibqf81dqvapyv6b
35
24
38
37
15
33
30
3
35
42
3
44
40
28
41
29
13
38
15
21
29
36
15
40
25
22
42
7
31
39
40
37
26
39
8
25
22
44
28
36
3
13
5
7
13
17
42
45
36
41
36
10
15
40
7
5
40
26
44
27
34
23
40
19
31
21
36
1
33
33
26
25
26
39
37
24
46
37
14
36
28
8
42
23
38
35
41
44
31
42
22
10
36...

result:

ok 2226 lines

Subtask #8:

score: 0
Skipped

Dependency #1:

0%

Subtask #9:

score: 0
Skipped

Dependency #3:

100%
Accepted

Dependency #5:

0%

Subtask #10:

score: 0
Skipped

Dependency #1:

0%