狠狠撸

狠狠撸Share a Scribd company logo
A?? 
?▼??????
???せ 
? ??N???▼??????? 
? Ant???Bug???Ant??...???????????? 
? Ant???A????Bug???B????▼???? 
? ?????????????????????? 
? ?? 
? 1 
≤ 
N, 
A, 
B 
≤ 
1000
ゎ? 
? ?????????????? 
? ????????????????A?B????? 
????? 
? ?????0?????????????????? 
????????
B?? 
???
???せ 
? ??????????N????????? 
? i?????????????┠???????? 
??? 
? 1??j??????K?┠?????????K~N 
?j????????? 
? ?? 
? 1 
≤ 
N 
≤ 
10^5
40?ゎ? 
(N≤1000) 
? ?????????????? 
? 1???j???????????????K?┠?せ 
??ぢ??
??ゎ? 
? j??????????????????????? 
???? 
? ?????K+1?┠?????????????K 
?┠???????? 
? ????????? 
– K+1?┠????????????? 
– K?┠???????⿵?????⿵???????? 
??????⿵??????? 
? ???⿵????????????????????
??ゎ? 
? ??????????????????せ??せ 
????? 
– せ?????? 
– せ??????????????? 
? priority 
queue???????queue? 
? ????O(log 
せ??)??????????? 
? ゝㄒ????????????????????? 
????????
C?? 
?????????
???せ 
? ???N????????? 
? ??v???????????????????? 
??????????v???????? 
? ?? 
? 1 
≤ 
N 
≤ 
10^5
30?ゎ? 
(N≤1000) 
? ?????????????? 
? ?????????????? 
? DFS?????????
??ゎ? 
? ???????????????? 
? DFS?????DP??????????????? 
???????????? 
? ????ぶ?????????????????? 
???? 
? →N-?‐1-?‐(?????????????) 
???????
??? 
? ヲ??????┬????? 
? ?????????????????????? 
????????????????
D?? 
?????????
???せ 
? N??????????A[i]???? 
? ?k??┠????x???????ィM????? 
???????????????????Q????? 
? ?? 
? 1 
≤ 
N 
≤ 
2000 
? 1 
≤ 
M 
≤ 
2000 
? 1 
≤ 
Q 
≤ 
500000
10?ゎ? 
(N,M,Q≤100) 
? ?????????DP???? 
? DP[i][j]=i??┠???j???????? 
? ???? 
? DP[i][j] 
= 
ΣDP[i-?‐1][j-?‐a[i]]~DP[i-?‐1][j] 
? ??????????O(1)???????
30?ゎ? 
(N,M≤100) 
? ???????????????????? 
? ??i???????????DP????????? 
????????i?????????? 
? ????O(N^2M) 
? ?????O(M) 
? ????30???????????
80?ゎ?(N,M≤2000,Q≤1000) 
? ?i???????DP???┤??????↓??? 
? 
? 0~j?????????DP????? 
? j~N?????????DP???? 
? ???????(せ?????????DP????) 
? ???????????DP????????????? 
O(M)??????????????
??ゎ? 
? ?????O(1)???????????? 
? ??i???????????DP????????? 
????????i???????????? 
? ?? 
? ??????????? 
? DP?????DP[i-?‐1]????(??)????
??DP 
? DP[i]??DP[i-?‐1]?????? 
? DP[i][j] 
= 
ΣDP[i-?‐1][j-?‐a[i]]~DP[i-?‐1][j] 
? → 
? DP[i-?‐1][j] 
= 
DP[i][j]-?‐ΣDP[i-?‐1][j-?‐a[i]]~DP[i-?‐1][j-?‐1] 
? O(M)??????? 
? ????????????????????? 
DP[N]??????i???????????DP??? 
????i???????????

More Related Content

AtCoder Regular Contest 028 解説