QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#297494#3275. 小明的树zwh2008100 ✓1450ms45068kbC++141.6kb2024-01-04 16:25:142024-01-04 16:25:14

Judging History

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

  • [2024-01-04 16:25:14]
  • 评测
  • 测评结果:100
  • 用时:1450ms
  • 内存:45068kb
  • [2024-01-04 16:25:14]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int>pi;
#define fi first
#define se second
const int N=5e5+5;
int n,m,a[N];
vector<pi>e;
struct tree{int l,r,mx,ct,tg1,tg2;ll val;}t[N<<2];
void build(int p,int l,int r) {
    t[p]={l,r,n-r,1,0,0,r};if(l==r)return;
    int mid=l+r>>1;build(p<<1,l,mid),build(p<<1|1,mid+1,r);
}
inline void Ad(int p,int k1,int k2){t[p].mx+=k1,t[p].tg1+=k1,t[p].val+=1ll*t[p].ct*k2,t[p].tg2+=k2;}
inline void down(int p){if(t[p].tg1||t[p].tg2)Ad(p<<1,t[p].tg1,t[p].tg2),Ad(p<<1|1,t[p].tg1,t[p].tg2),t[p].tg1=t[p].tg2=0;}
void Add(int p,int l,int r,int k1,int k2) {
    if(l>r)return;
    if(t[p].l>=l&&t[p].r<=r)return Ad(p,k1,k2);
    int mid=t[p].l+t[p].r>>1;down(p);
    if(l<=mid)Add(p<<1,l,r,k1,k2);
    if(r>mid)Add(p<<1|1,l,r,k1,k2);
    t[p].mx=min(t[p<<1].mx,t[p<<1|1].mx);
    t[p].ct=(t[p<<1].mx==t[p].mx)*t[p<<1].ct+(t[p<<1|1].mx==t[p].mx)*t[p<<1|1].ct;
    t[p].val=(t[p<<1].mx==t[p].mx)*t[p<<1].val+(t[p<<1|1].mx==t[p].mx)*t[p<<1|1].val;
}
int main() {
    // freopen(".in","r",stdin);
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m,a[1]=n;
    for(int i=1,x,y;i<n;i++)cin>>x>>y,e.push_back({x,y});
    for(int i=1,x;i<n;i++)cin>>x,a[x]=i;
    build(1,1,n-1);
    for(pi i:e)Add(1,1,min(a[i.fi],a[i.se])-1,-1,0),Add(1,max(a[i.fi],a[i.se]),n-1,0,-1);
    cout<<t[1].val<<'\n';
    while(m--) {
        int x,y,xx,yy;cin>>x>>y>>xx>>yy;
        Add(1,1,min(a[x],a[y])-1,1,0),Add(1,max(a[x],a[y]),n-1,0,1);
        Add(1,1,min(a[xx],a[yy])-1,-1,0),Add(1,max(a[xx],a[yy]),n-1,0,-1);
        cout<<t[1].val<<'\n';
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 457ms
memory: 45040kb

input:

500000 0
2 1
3 2
4 2
5 4
6 1
7 1
8 4
9 3
10 9
11 3
12 8
13 5
14 7
15 10
16 10
17 13
18 14
19 18
20 14
21 13
22 3
23 2
24 2
25 10
26 19
27 13
28 16
29 7
30 11
31 13
32 28
33 30
34 10
35 26
36 5
37 34
38 20
39 7
40 35
41 30
42 11
43 40
44 10
45 5
46 23
47 15
48 23
49 16
50 5
51 13
52 23
53 47
54 3
55 ...

output:

237

result:

ok 1 number(s): "237"

Subtask #2:

score: 20
Accepted

Test #2:

score: 20
Accepted
time: 12ms
memory: 4312kb

input:

8000 8000
2 1
3 2
4 1
5 4
6 3
7 4
8 3
9 3
10 8
11 6
12 7
13 11
14 11
15 7
16 4
17 11
18 7
19 8
20 19
21 18
22 17
23 2
24 15
25 23
26 13
27 10
28 1
29 7
30 17
31 11
32 18
33 2
34 1
35 29
36 5
37 21
38 6
39 7
40 26
41 19
42 3
43 9
44 39
45 23
46 41
47 38
48 12
49 4
50 30
51 1
52 41
53 17
54 41
55 53
5...

output:

16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
...

result:

ok 8001 numbers

Test #3:

score: 0
Accepted
time: 12ms
memory: 6288kb

input:

8000 8000
2 1
3 2
4 3
5 1
6 1
7 2
8 6
9 7
10 5
11 8
12 1
13 3
14 9
15 7
16 11
17 15
18 17
19 16
20 8
21 9
22 16
23 8
24 17
25 23
26 11
27 22
28 16
29 11
30 14
31 27
32 23
33 24
34 7
35 26
36 10
37 35
38 7
39 21
40 7
41 11
42 32
43 11
44 17
45 9
46 4
47 5
48 24
49 25
50 15
51 32
52 41
53 28
54 34
55 ...

output:

12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
...

result:

ok 8001 numbers

Subtask #3:

score: 70
Accepted

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Test #4:

score: 70
Accepted
time: 1411ms
memory: 45024kb

input:

500000 500000
2 1
3 2
4 1
5 2
6 1
7 6
8 7
9 1
10 7
11 8
12 11
13 6
14 4
15 4
16 6
17 9
18 8
19 14
20 11
21 15
22 9
23 11
24 16
25 6
26 19
27 15
28 7
29 10
30 18
31 5
32 30
33 27
34 15
35 22
36 23
37 13
38 21
39 12
40 12
41 38
42 8
43 42
44 37
45 43
46 17
47 14
48 41
49 20
50 20
51 44
52 39
53 23
54 ...

output:

262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
...

result:

ok 500001 numbers

Test #5:

score: 0
Accepted
time: 1404ms
memory: 43096kb

input:

500000 500000
2 1
3 1
4 2
5 3
6 2
7 3
8 1
9 3
10 2
11 8
12 6
13 8
14 7
15 12
16 8
17 11
18 10
19 12
20 12
21 7
22 6
23 16
24 1
25 21
26 13
27 8
28 19
29 3
30 26
31 27
32 21
33 21
34 23
35 16
36 28
37 31
38 3
39 17
40 9
41 8
42 37
43 15
44 40
45 8
46 44
47 31
48 46
49 27
50 17
51 9
52 13
53 29
54 6
5...

output:

415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
415
...

result:

ok 500001 numbers

Test #6:

score: 0
Accepted
time: 1391ms
memory: 42916kb

input:

500000 500000
2 1
3 2
4 1
5 4
6 3
7 1
8 5
9 6
10 7
11 5
12 5
13 12
14 2
15 6
16 15
17 9
18 17
19 17
20 5
21 9
22 19
23 5
24 15
25 11
26 4
27 11
28 19
29 28
30 5
31 30
32 21
33 10
34 8
35 3
36 14
37 10
38 26
39 12
40 1
41 27
42 34
43 20
44 14
45 33
46 3
47 19
48 45
49 35
50 32
51 1
52 42
53 9
54 7
55...

output:

57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
...

result:

ok 500001 numbers

Test #7:

score: 0
Accepted
time: 1424ms
memory: 45012kb

input:

500000 500000
2 1
3 2
4 3
5 1
6 5
7 6
8 3
9 6
10 8
11 2
12 4
13 4
14 9
15 10
16 5
17 10
18 11
19 8
20 18
21 18
22 5
23 4
24 7
25 10
26 21
27 25
28 8
29 2
30 20
31 28
32 16
33 32
34 20
35 34
36 3
37 9
38 25
39 21
40 35
41 13
42 20
43 3
44 34
45 2
46 17
47 8
48 12
49 17
50 17
51 49
52 15
53 48
54 27
5...

output:

198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
...

result:

ok 500001 numbers

Test #8:

score: 0
Accepted
time: 1450ms
memory: 45068kb

input:

500000 500000
2 1
3 2
4 2
5 2
6 3
7 2
8 2
9 4
10 1
11 2
12 10
13 6
14 8
15 5
16 13
17 7
18 1
19 16
20 7
21 9
22 15
23 20
24 6
25 2
26 10
27 6
28 2
29 27
30 6
31 24
32 2
33 4
34 5
35 4
36 31
37 5
38 5
39 17
40 19
41 30
42 40
43 2
44 14
45 25
46 37
47 6
48 46
49 19
50 33
51 11
52 1
53 27
54 7
55 47
56...

output:

290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
290
...

result:

ok 500001 numbers

Test #9:

score: 0
Accepted
time: 1420ms
memory: 42956kb

input:

500000 500000
2 1
3 1
4 2
5 1
6 5
7 5
8 1
9 8
10 5
11 8
12 4
13 9
14 11
15 10
16 11
17 7
18 17
19 12
20 17
21 9
22 9
23 8
24 21
25 17
26 13
27 5
28 10
29 18
30 4
31 19
32 6
33 18
34 10
35 12
36 19
37 13
38 5
39 10
40 33
41 16
42 18
43 20
44 26
45 19
46 1
47 15
48 17
49 48
50 43
51 40
52 29
53 45
54 ...

output:

40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
...

result:

ok 500001 numbers

Test #10:

score: 0
Accepted
time: 1403ms
memory: 42932kb

input:

500000 500000
2 1
3 2
4 2
5 4
6 2
7 1
8 1
9 5
10 9
11 3
12 3
13 1
14 9
15 6
16 8
17 3
18 9
19 5
20 5
21 5
22 15
23 15
24 7
25 7
26 9
27 26
28 9
29 1
30 28
31 2
32 20
33 28
34 26
35 16
36 7
37 29
38 33
39 13
40 34
41 35
42 27
43 24
44 10
45 12
46 19
47 11
48 38
49 12
50 18
51 19
52 23
53 6
54 33
55 1...

output:

20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
...

result:

ok 500001 numbers