QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#86776#5659. Watching CowflixAcestar100 ✓2891ms38052kbC++141.5kb2023-03-10 21:33:232023-03-10 21:33:36

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-10 21:33:36]
  • 评测
  • 测评结果:100
  • 用时:2891ms
  • 内存:38052kb
  • [2023-03-10 21:33:23]
  • 提交

answer

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

using namespace std;

const int N = 2e5 + 5;
const int M = 500;
const int inf = 1e9;

int n;
char s[N];
vector <int> G[N];

int f[N][2], g[N][2];
int ans[N], cnt[N];

void dfs(int u, int fa, int k)
{
	f[u][0] = g[u][0] = 0;
	f[u][1] = g[u][1] = 1;
	for(auto v : G[u])
	{
		if(v == fa) continue;
		dfs(v, u, k);
		if(f[v][0] < f[v][1] + k) f[u][0] += f[v][0], g[u][0] += g[v][0];
		else f[u][0] += f[v][1] + k, g[u][0] += g[v][1];
		if(f[v][0] < f[v][1]) f[u][1] += f[v][0], g[u][1] += g[v][0];
		else f[u][1] += f[v][1], g[u][1] += g[v][1] - 1;
//		f[u][0] += min(f[v][0], f[v][1] + k);
//		f[u][1] += min(f[v][0], f[v][1]);
	}
	if(s[u] == '1') f[u][0] = inf;
	
	if(u == 1)
	{
		if(f[u][0] < f[u][1] + k) ans[k] = f[u][0], cnt[k] = g[u][0];
		else ans[k] = f[u][1] + k, cnt[k] = g[u][1];
	}
	return;
}

void solve(int l, int r)
{
	if(l + 1 >= r) return;
	if(cnt[l] == cnt[r])
	{
		for(int i = l + 1; i <= r; i++)
			cnt[i] = cnt[i - 1], ans[i] = ans[i - 1] + cnt[i];
		return;
	}
	int mid = (l + r) >> 1; dfs(1, 0, mid);
	solve(l, mid), solve(mid, r);
	return;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr), cout.tie(nullptr);
	
	cin >> n >> (s + 1);
	for(int i = 1, u, v; i < n; i++)
		cin >> u >> v, G[u].push_back(v), G[v].push_back(u);
	dfs(1, 0, 1), dfs(1, 0, n);
	solve(1, n);
	for(int i = 1; i <= n; i++) cout << ans[i] << '\n';
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 4.16667
Accepted
time: 0ms
memory: 12440kb

input:

5
10001
1 2
2 3
3 4
4 5

output:

4
6
8
9
10

result:

ok 5 number(s): "4 6 8 9 10"

Test #2:

score: 4.16667
Accepted
time: 4ms
memory: 12152kb

input:

7
0001010
7 4
5 6
7 2
5 1
6 3
2 5

output:

4
6
8
9
10
11
12

result:

ok 7 numbers

Test #3:

score: 4.16667
Accepted
time: 6ms
memory: 13108kb

input:

5000
0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000010000000...

output:

711
837
944
1040
1121
1192
1249
1303
1352
1398
1439
1479
1518
1557
1596
1634
1671
1707
1742
1775
1807
1839
1871
1902
1932
1961
1990
2018
2046
2073
2099
2125
2150
2174
2197
2220
2242
2264
2286
2308
2329
2349
2368
2386
2404
2422
2439
2456
2472
2487
2502
2516
2529
2541
2552
2563
2573
2583
2593
2603
261...

result:

ok 5000 numbers

Test #4:

score: 4.16667
Accepted
time: 11ms
memory: 12864kb

input:

5000
0100000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000...

output:

890
1226
1433
1547
1619
1676
1727
1775
1821
1865
1908
1950
1989
2027
2064
2100
2136
2171
2206
2240
2273
2305
2336
2366
2395
2424
2452
2479
2506
2532
2557
2581
2604
2626
2648
2670
2691
2711
2730
2749
2768
2786
2804
2821
2837
2853
2869
2884
2898
2911
2923
2934
2944
2953
2962
2971
2980
2988
2995
3001
3...

result:

ok 5000 numbers

Test #5:

score: 4.16667
Accepted
time: 4ms
memory: 12804kb

input:

5000
0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000000000...

output:

794
1025
1178
1284
1364
1422
1473
1517
1559
1600
1640
1679
1717
1754
1790
1826
1861
1895
1928
1960
1992
2024
2056
2088
2119
2150
2181
2211
2241
2270
2298
2325
2351
2376
2401
2425
2448
2471
2493
2515
2536
2556
2575
2594
2612
2629
2645
2660
2674
2688
2701
2713
2724
2734
2743
2751
2759
2766
2772
2777
2...

result:

ok 5000 numbers

Test #6:

score: 4.16667
Accepted
time: 2393ms
memory: 37892kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

30804
41189
48182
51855
52223
52591
52958
53324
53690
54055
54419
54782
55144
55505
55865
56224
56582
56939
57295
57650
58004
58357
58709
59061
59412
59762
60111
60459
60806
61152
61497
61841
62184
62526
62867
63207
63546
63884
64222
64559
64895
65230
65564
65898
66231
66563
66894
67224
67554
67883
...

result:

ok 200000 numbers

Test #7:

score: 4.16667
Accepted
time: 2351ms
memory: 38052kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

30644
41023
48123
51892
52268
52643
53017
53390
53763
54135
54506
54876
55245
55613
55980
56346
56712
57077
57441
57804
58166
58528
58889
59249
59608
59966
60323
60679
61034
61388
61741
62093
62445
62796
63146
63495
63843
64190
64536
64881
65225
65568
65910
66251
66591
66931
67270
67608
67945
68281
...

result:

ok 200000 numbers

Test #8:

score: 4.16667
Accepted
time: 2263ms
memory: 37896kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

30736
41111
48167
51868
52239
52609
52978
53346
53714
54081
54447
54812
55176
55539
55902
56264
56625
56985
57344
57702
58060
58417
58774
59130
59485
59839
60192
60544
60895
61245
61594
61942
62289
62635
62980
63324
63668
64011
64353
64695
65036
65377
65717
66057
66396
66734
67071
67408
67744
68079
...

result:

ok 200000 numbers

Test #9:

score: 4.16667
Accepted
time: 581ms
memory: 19432kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

12231
13861
15163
16221
17072
17762
18344
18845
19259
19625
19946
20243
20518
20777
21022
21258
21485
21703
21913
22120
22319
22516
22709
22900
23088
23273
23455
23635
23814
23991
24166
24340
24513
24684
24855
25026
25196
25366
25535
25703
25871
26038
26204
26370
26535
26700
26865
27029
27192
27355
...

result:

ok 100000 numbers

Test #10:

score: 4.16667
Accepted
time: 783ms
memory: 19656kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

15993
21877
25281
26909
27789
28313
28685
28977
29223
29439
29645
29846
30043
30236
30427
30616
30805
30993
31179
31364
31549
31733
31916
32099
32281
32462
32642
32821
33000
33178
33355
33531
33706
33880
34053
34225
34396
34566
34735
34904
35073
35242
35410
35578
35745
35912
36078
36243
36408
36573
...

result:

ok 100000 numbers

Test #11:

score: 4.16667
Accepted
time: 921ms
memory: 19052kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

14608
18481
21252
23081
24008
24472
24793
25033
25239
25433
25621
25807
25992
26177
26362
26546
26730
26914
27097
27280
27463
27646
27828
28010
28191
28372
28552
28732
28912
29091
29269
29447
29624
29801
29977
30152
30327
30502
30677
30851
31024
31196
31368
31539
31710
31881
32051
32220
32388
32556
...

result:

ok 100000 numbers

Test #12:

score: 4.16667
Accepted
time: 597ms
memory: 20388kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

12198
13815
15093
16151
17026
17738
18331
18839
19271
19665
20028
20361
20662
20950
21223
21483
21737
21983
22223
22456
22688
22915
23140
23363
23583
23800
24014
24227
24437
24645
24852
25059
25263
25467
25670
25872
26073
26273
26472
26671
26870
27069
27268
27466
27663
27860
28056
28251
28445
28639
...

result:

ok 100000 numbers

Test #13:

score: 4.16667
Accepted
time: 795ms
memory: 20252kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

16072
21956
25331
26992
27900
28439
28821
29124
29381
29611
29824
30031
30231
30428
30623
30818
31012
31205
31397
31588
31778
31967
32155
32343
32530
32716
32902
33087
33271
33455
33638
33820
34001
34181
34361
34540
34718
34895
35071
35246
35421
35595
35769
35943
36117
36290
36462
36633
36803
36972
...

result:

ok 100000 numbers

Test #14:

score: 4.16667
Accepted
time: 937ms
memory: 19640kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

14721
18698
21526
23419
24460
25022
25382
25657
25899
26124
26341
26556
26770
26983
27195
27406
27616
27826
28035
28243
28450
28657
28863
29068
29273
29477
29680
29882
30083
30283
30482
30680
30877
31073
31269
31465
31661
31856
32050
32243
32436
32628
32819
33010
33200
33390
33579
33767
33954
34141
...

result:

ok 100000 numbers

Test #15:

score: 4.16667
Accepted
time: 609ms
memory: 19844kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

12121
13753
15063
16111
16951
17644
18220
18708
19131
19507
19849
20159
20449
20713
20959
21195
21425
21646
21862
22074
22282
22486
22685
22881
23075
23263
23448
23631
23814
23995
24174
24352
24529
24705
24881
25057
25232
25406
25579
25751
25922
26092
26262
26432
26601
26769
26937
27104
27271
27437
...

result:

ok 100000 numbers

Test #16:

score: 4.16667
Accepted
time: 800ms
memory: 20132kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

16192
22112
25455
27102
28010
28532
28907
29190
29436
29656
29864
30066
30261
30455
30645
30834
31021
31208
31395
31582
31767
31951
32134
32316
32497
32677
32856
33034
33212
33389
33566
33743
33920
34096
34272
34447
34621
34794
34966
35137
35308
35479
35649
35818
35986
36153
36319
36484
36648
36811
...

result:

ok 100000 numbers

Test #17:

score: 4.16667
Accepted
time: 928ms
memory: 19472kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

14705
18667
21466
23348
24359
24932
25318
25603
25858
26103
26345
26586
26827
27067
27307
27546
27785
28023
28260
28496
28731
28966
29200
29433
29666
29898
30129
30359
30589
30818
31047
31275
31502
31728
31953
32177
32401
32624
32846
33067
33287
33507
33726
33945
34163
34381
34598
34814
35029
35243
...

result:

ok 100000 numbers

Test #18:

score: 4.16667
Accepted
time: 579ms
memory: 19584kb

input:

100000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

12282
13869
15142
16212
17062
17756
18336
18825
19253
19627
19967
20273
20555
20813
21059
21296
21518
21730
21938
22145
22349
22548
22745
22938
23130
23318
23505
23690
23872
24053
24231
24407
24582
24757
24930
25102
25273
25443
25613
25783
25953
26122
26290
26457
26623
26788
26952
27116
27279
27441
...

result:

ok 100000 numbers

Test #19:

score: 4.16667
Accepted
time: 152ms
memory: 18960kb

input:

100000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

6
9
12
15
18
21
24
27
30
33
36
39
42
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
162
165
168
171
174
177
180
183
186
189
192
195
198
201
204
207
210
213
216
219
222
225
228
231
234
237
240
243
246
249
252
25...

result:

ok 100000 numbers

Test #20:

score: 4.16667
Accepted
time: 2435ms
memory: 27384kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

32208
43788
50276
53422
55077
56024
56680
57157
57540
57873
58183
58476
58761
59038
59309
59576
59842
60107
60372
60637
60902
61166
61429
61691
61953
62214
62474
62733
62991
63248
63504
63759
64013
64267
64520
64772
65023
65273
65522
65771
66019
66266
66513
66760
67006
67251
67495
67738
67980
68221
...

result:

ok 200000 numbers

Test #21:

score: 4.16667
Accepted
time: 2891ms
memory: 26740kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

29187
37057
42486
46042
47809
48729
49288
49678
50003
50297
50578
50856
51132
51407
51680
51953
52225
52496
52767
53038
53309
53579
53849
54119
54389
54659
54928
55197
55465
55732
55998
56263
56528
56792
57055
57317
57579
57841
58103
58364
58624
58884
59143
59401
59658
59915
60171
60426
60681
60936
...

result:

ok 200000 numbers

Test #22:

score: 4.16667
Accepted
time: 1983ms
memory: 26684kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

24124
27220
29594
31525
33097
34385
35443
36335
37102
37780
38364
38868
39324
39757
40158
40539
40904
41253
41585
41904
42213
42513
42809
43101
43389
43673
43950
44225
44499
44770
45038
45305
45571
45835
46099
46362
46625
46887
47149
47410
47671
47931
48190
48449
48707
48965
49222
49478
49734
49989
...

result:

ok 200000 numbers

Test #23:

score: 4.16667
Accepted
time: 2658ms
memory: 27292kb

input:

200000
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

32229
44001
50557
53742
55374
56305
56915
57369
57753
58095
58406
58701
58982
59255
59526
59795
60064
60333
60601
60868
61134
61399
61663
61927
62191
62455
62718
62980
63242
63503
63764
64024
64283
64542
64800
65057
65314
65570
65826
66081
66335
66588
66840
67091
67341
67590
67838
68085
68332
68578
...

result:

ok 200000 numbers

Test #24:

score: 4.16667
Accepted
time: 384ms
memory: 22976kb

input:

200000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

6
9
12
15
18
21
24
27
30
33
36
39
42
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
162
165
168
171
174
177
180
183
186
189
192
195
198
201
204
207
210
213
216
219
222
225
228
231
234
237
240
243
246
249
252
25...

result:

ok 200000 numbers