More Related Content
Similar to AtCoder Regular Contest 028 解説 (20)
More from AtCoder Inc. (20)
AtCoder Regular Contest 028 解説
- 2. ၥ㢟ᴫせ
• ⿄䛻Nಶ䛾ᑠ▼䛜ධ䛳䛶䛔䜛䚹
• Ant䛥䜣䚸Bug䛟䜣䚸Ant䛥䜣...䛾㡰䛻䛻ྲྀ䛳䛶䛔䛟䚹
• Ant䛥䜣䛿Aಶ䛪䛴䚸Bug䛥䜣䛿Bಶ䛪䛴ᑠ▼䜢ྲྀ䜛䚹
• 䛹䛱䜙䛾䝍䞊䞁䛾ᚋ䛻⿄䛜✵䛻䛺䜛䛛䜢ồ䜑䜘䚹
• ไ⣙
• 1
≤
N,
A,
B
≤
1000
- 7. ‶Ⅼゎἲ
• j䜢ᑠ䛥䛔᪉䛛䜙㡰␒䛻ቑ䜔䛧䛶䛔䛝䚸⟅䛘䜢᭦᪂䛧
䛶䛔䛟䚹
• 䛒䜛Ⅼ䛷K+1␒┠௨㝆䛻䛺䛳䛯ே䛿䚸䛭䜜௨㝆K
␒┠䛻䛺䜛䛿䛺䛔䚹
• 䠍ே㏣ຍ䛩䜛ᗘ䛻䚸
– K+1␒┠௨㝆䛰䛳䛯䜙䛺䛻䜒䛧䛺䛔䚹
– K␒┠௨ෆ䛰䛳䛯䜙ೃ⿵䛻ຍ䛘䚸ೃ⿵䛾୰䛛䜙୍␒⪁䛡
䛶䛔䜛ே䜢ೃ⿵䛛䜙๐㝖䛩䜛䚹
• 䛷䚸ೃ⿵䛾䛖䛱᭱䜒⪁䛡䛶䛔䜛ே䛾㡰䜢ฟຊ䛩䜛䚹
- 8. ‶Ⅼゎἲ
• 䛭䜜䜢ᐇ⌧䛩䜛䛯䜑䛻䛿䝕䞊䝍ᵓ㐀䛜ᚲせ䚹ᚲせ
䛺᧯స䛿䚸
– せ⣲䜢㏣ຍ䛩䜛
– せ⣲䛾䛖䛱᭱䜒䛝䛔್䜢ྲྀ䜚ฟ䛩
• priority
queue䠄ඃඛ㡰䛴䛝queue䠅
• ྛ᧯స䜢O(log
せ⣲ᩘ)䛷⾜䛖䛣䛸䛜ฟ᮶䜎䛩䚹
• ゝㄒ䛻䜘䛳䛶ᶆ‽䝷䜲䝤䝷䝸䛜䛒䛳䛯䜚䛩䜛䛾䛷ㄪ
䜉䛶䜏䜎䛧䜗䛖䚹
- 12. ‶Ⅼゎἲ
• 䛸䜚䛒䛘䛪᰿䛝ᮌ䛸䛧䛶⪃䛘䜛䚹
• DFS䛧䛺䛜䜙ᮌDP䜢䛩䜜䜀䚸Ꮚ᪉ྥ䛾㒊ศᮌ䛾䝃䜲
䝈䜢ồ䜑䜛䛣䛸䛜ฟ᮶䜛䚹
• 䛧䛛䛧䚸ぶ᪉ྥ䛾㒊ศᮌ䛾䝃䜲䝈䛿䛹䛖䛧䛯䜒䛾䛰
䜝䛖䛛䚹
• →N-‐1-‐(Ꮚ᪉ྥ䛾㒊ศᮌ䛾䝃䜲䝈䛾)
䛷ồ䜑䜙䜜䜛䟿
- 15. ၥ㢟ᴫせ
• N✀㢮䛾ၟရ䛜䛭䜜䛮䜜A[i]ಶ䛒䜛䚹
• 䛂k✀㢮┠䛾ၟရ䜢xಶ㑅䜆䛸䛝䚸ྜィMಶ䛾ၟရ䜢
㑅䜆᪉ἲ䛿ఱ㏻䜚䛒䜛䛛䛃䛸䛔䛖䜽䜶䝸䛻Qᅇ⟅䛘䜘䚹
• ไ⣙
• 1
≤
N
≤
2000
• 1
≤
M
≤
2000
• 1
≤
Q
≤
500000
- 16. 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)䛷᭦᪂䛷䛝䜛䚹
- 17. 30Ⅼゎἲ
(N,M≤100)
• ၟရ䛾㡰␒䜢ධ䜜᭰䛘䛶䜒⟅䛘䛿ኚ䜟䜙䛺䛔
• ၟရi௨እ䛰䛡䜢䛳䛯䛸䛝䛾DP䝔䞊䝤䝹䛸䛔䛖䛾䜢
䛒䜙䛛䛨䜑䛶䛾i䛻䛴䛔䛶ồ䜑䛶䛚䛟䚹
• ๓ฎ⌮䠖O(N^2M)
• ྛ䜽䜶䝸䠖O(M)
• 䛸䛺䜚䚸30Ⅼ䜢ᚓ䜛䛣䛸䛜ฟ᮶䜛䚹
- 20. ᡠ䛩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䛻䛴䛔䛶ඖ䛷䛝䜎䛩䚹