7์ 3์ฃผ์ฐจ Weekly PS
July 11 - July 18, 2021
์ด ๊ธ์ ๊ตฌํ์ฝ๋ ๋งํฌ๊ฐ ์๋๋ผ๋ PS ๋ ํฌ ๋งํฌ ์ ๊ฐ์ ๋ํ ๋จ์๋ก ๋ค์ด๊ฐ๋ฉด ๋ณดํต ์ฌ๋ ค๋์ ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
Recent Updates
- 2021 SCPC ๋ผ์ด๋ 1์ ๋ญ ๋ฌด๋ํ ํต๊ณผํ์ต๋๋ค.
Rounds
(ํ์ฐ์ต) ์๊ฐ๋ํ๊ต 2020 SPC Div.1 (Champion)
- ํฌ์คํ ๋งํฌ ์ ํฌ์คํ ํ์ต๋๋ค.
(๋ํ) SCPC 2021 Round 1
- ํฌ์คํ ๋งํฌ ์ ํฌ์คํ ํ์ต๋๋ค.
(Atcoder) Atcoder Beginner Round 210
- ๋ผ์ด๋ ๋งํฌ
- 582๋ฑ, -9 (1844 -> 1835).
- D๋ฒ DP๋ฌธ์ ๋ฅผ ๋ชป ํ์ด์ ๋ ์ดํ ์ ์ข ๊น์๋จน์์ต๋๋ค. ๋์ E๋ฒ (์ํ..์ด๋ผ๊ธด ์ข ์ ๋งคํ๊ณ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค) ์ ํ์ด์ ๋ณธ์ ์ ์น๋ฏ ํฉ๋๋ค.
Problems
์ด๋ฒ์๋ DP ์ฐ์ต์ ํ๊ธฐ๋ก ํ์ต๋๋ค. ๋ฐฑ์ค ๋ฒํธ๋ฅผ ์ ์ด๋จ์ผ๋ฏ๋ก ๋ฌธ์ ์ค๋ช ์ ๊ฐ๊ธ์ ์๋ตํฉ๋๋ค.
IOI 2009-4, Raisins (BOJ 5463 ๊ฑดํฌ๋)
- ๋์ด๋ Gold 1
- IOI์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋์จ์ ์๋์ง๋ ๋ชฐ๋์ต๋๋ค. ๋ฌด์จ 20์ธ๊ธฐ ๋ํ๋ ์๋๊ณ 2009๋ ์..?
- ๊ฑฐ์ straightforwardํ DP๋ก ํด๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
-
dp[r1][c1][r2][c2]
๋ฅผ ์ง์ $[r1, c1] \times [r2, c2]$ ์ฌ๊ฐํ์ DP๊ฐ์ด๋ผ๊ณ ์ ์ํ๋ฉด, - ์ด์ ์ด ๊ฐ์ ๋ชจ๋ ๊ฐ๋ก/์ธ๋ก ์ปท์ ์ง์ ํ์ธํ๋ฉด ๋ฉ๋๋ค.
- ๊ตฌํ ์ฝ๋ ๊ฐ ์๋นํ ๊ฐ๋จํ๋ฏ๋ก ํ์ธํ๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ํฌ์์ IOI๋ฅผ ์ฐพ์๊ฐ๋ฉด ๋ฉ๋๋ค.
-
- ์๊ฐ ๋ณต์ก๋๋ $O(n^4)$ ์นธ DP๋ฅผ ์นธ๋น $O(n)$ ์๊ฐ์ ์ฑ์ฐ๋ ๊ฒ์ด๋ฏ๋ก $O(n^5)$ ์ ๋๋ค.
์๊ฐ๋ํ๊ต SPC 2015-1F, ๋ชฌ์คํฐ (BOJ 11573)
- ๋์ด๋ Gold 1
- ๋ง์ฐฌ๊ฐ์ง๋ก
dp[i][j][k]
๋ฅผ ๋นจ๊ฐ์ ๋ ธ๋์ ํ๋์์ด $i, j, k$ ๋ง๋ฆฌ ๋จ์ ์ํฉ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. - ์ด๋, Random choice์ ์ํด ๋นจ๊ฐ์๊ณผ ๋ ธ๋์์ด ๋ง๋ ํ๋ฅ ์ $\frac{ij}{ij + jk + ki}$ ์ ๋๋ค.
- ์ด๋ ๊ฒ ๊ฐ state transition์ ํ๋ฅ ์ ๊ตฌํด์, ํ๋ฅ ์ ํ๋ค์ด DP๋ก ์ฐพ์์ฃผ๋ฉด ๋ฉ๋๋ค.
- ์ด๋ค ํน์ ์ข ์ ๋ชฌ์คํฐ๊ฐ ์์ ์์ด์ง๋ฉด ๋ ์ข ๋ฅ ์ค์๋ ํญ์ ์ด๊ธฐ๋ ์ชฝ์ด ์ ํด์ ธ ์์ผ๋ฏ๋ก ํ๋ฅ ์ด (1, 0, 0) ํํ๋ก ๋์ต๋๋ค. ์ด๋ฅผ ๋ฒ ์ด์ค ์ผ์ด์ค๋ก ์ฐ๋ฉด ๋ฉ๋๋ค.
- ๋์นญ์ฑ์ ์ ์ด์ฉํ๋ฉด $n^3$ ๊ฐ์ ์ค์๊ฐ๋ง์ผ๋ก ๊ณ์ฐํ ์ ์๋๊ฒ ๊ฐ์๋ฐ, ์ ๋ $p_1, p_2, p_3$ ์ struct๋ก ๋ฌถ์ด์ ๋๋ ธ์ต๋๋ค.
์ฐ์ธ๋ํ๊ต 2018-C ๋๋ฌด ์์ ์ ์ (BOJ 15669)
- ๋์ด๋ Platinum 5
- ์ ์ U, V์ ๋ํด, ํธ์์
depth(u) < depth(v)
๋ผ๊ณ ํฉ์๋ค. - ์ด๋,
v
์ โ์์์โ ํ๋, โ์๋์โ ํ๋๋ฅผ ๊ณจ๋ผ์ ๊ทธ ๊ฑฐ๋ฆฌ๊ฐ ํ์/์ง์๊ฐ ๋๋ ์ ์ ์ ๊ฐ์๋ฅผ ์ธ๋ ๋ฌธ์ ์ ๋๋ค.- ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์,
dp[i]
์i
๋ฅผ ๋ฃจํธ๋ก ํ๋ ์๋ธํธ๋ฆฌ์์ ๊น์ด๊ฐ ํ์/์ง์์ธ ์ ์ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์ธ ๋๊ณ - ๊ฑฐ๋ฆฌ๊ฐ ์ง์์ด๋ ค๋ฉด
v
์๋ ์๋ธํธ๋ฆฌ์์ ์ง์ ๊น์ด,v
์๋๊ฐ ์๋ ๊ณณ์์ ์ง์ ๊น์ด - ๋๋ ๋๋ค ํ์ ๊น์ด์ธ ๋ ธ๋๋ค์ ๊ฐ์์ ๊ณฑ์ ๋๋ค.
- ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์,
- ์ญ์ ์ฝ๋๊ฐ ์กฐ๊ธ๋ ๋ณด๊ธฐ ์ฌ์ด ๋ฌธ์ ์ ๋๋ค. ๋ชจ๋ ์ ๋ณด๋ DFS๋ฅผ ๋๋ฆฌ๋ฉด์ Tree DP ํ ์ ์์ด์ $O(n)$ ์ ํด๊ฒฐ ๊ฐ๋ฅํฉ๋๋ค.
์ฐ์ธ๋ํ๊ต 2018-L ์ฐ์ธ์ํฐํํฌ (BOJ 15678)
- ๋์ด๋ Platinum 5
- ํต์ฌ์ $D_i = \max_{i - d \leq j < i} (D_j + A_i)$ ๋ผ๋ DP์์ด๊ณ ,
- ์ด ์์์ $A_i$๋ ์ด๋ฏธ ์ ํด์ ธ ์์ผ๋ฏ๋ก $[i - d, i)$ ๊ตฌ๊ฐ์ ์ต๋๊ฐ์ ๋นจ๋ฆฌ ๊ตฌํ ์ ์์ผ๋ฉด ๋ฉ๋๋ค.
- Deque DP Optimization์ด๋ผ๋ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ ๊ธฐ๋ณธ ์ฐ์ต๋ฌธ์ ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ธ์ ๊ฐ ๋ฐ๋ก ์๊ฐํ๊ฒ ์ต๋๋ค.
- $n$ ์ด ์์์ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ก $O(n \log n)$ ์๋ ํ ์ ์์ต๋๋ค.
IOI 2002-4, Batch Scheduling (BOJ 5498)
- ๋์ด๋ Platinum 3
- ์ง๋ฌธ์ด ๊ต์ฅํ ์ดํดํ๊ธฐ ์ด๋ ต์ต๋๋ค.
-
T
์ ๋ถ๋ถํฉ์TS
,F
์ ๋ถ๋ถํฉ์FS
๋ผ๊ณ ์๊ฐํ๊ฒ ์ต๋๋ค. - ๋ค์์๋ถํฐ ์ญ์์ผ๋ก Batch๋ฅผ ๋ง๋ค๋ฉด์ ์ค๋ ์์ผ๋ก ์๊ฐํฉ๋๋ค.
- Batch ๋ธ๋ก ํ๋๊ฐ
i, i+1, ... j
๊ตฌ๊ฐ์ ์ปค๋ฒํ๋ค๋ฉด,t + s + (TS[j] - TS[i-1])
์(FS[j] - FS[i-1])
์ ๊ณฑํด์ผ ํ๋๋ฐ, ๊ฐ ๋ธ๋ก์ ์์์ t
๋ฅผ ๋์ ํ ๊ณ์ฐํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- Batch ๋ธ๋ก ํ๋๊ฐ
- ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ ๋ธ๋ก์์์ ์๋ชจ ์๊ฐ์ ๋ท ๋ธ๋ก์ ๊ณ์ ๋ํด ์ฃผ๋ ์์ผ๋ก,
(s + (TS[j] - TS[i-1])) * (FS[n] - FS[i-1])
๋ก ๊ณ์ฐํด์ ๋ํด์ฃผ๋ฉด ๋ชจ๋ ๋ธ๋ก์ ๋ํ์๋ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์ต๋๋ค. - ๋ฐ๋ผ์ ๋ค์ DP์์ ์๊ฐํฉ๋๋ค. \(D_i = \min_{i \leq j} (D_j + (s + TS_{j} - TS_{i-1}) (FS_{n} - FS_{i-1}))\) ์ด ์์ ๊ทธ๋ฅ ๊ณ์ฐํ๋ฉด $O(n^2)$ ๋ผ์, ๋ ์ค์ด๊ณ ์ถ์ต๋๋ค.
- ์ฌ๊ธฐ์, $j$์ ๋ฌด๊ดํ ํญ์ ๋ค min ๋ฐ์ผ๋ก ๋นผ์ ์ ๋ฆฌํ๋ฉด, $D_j + TS_{j} \times u_i$ ๋ค์ minimum์ ๋น ๋ฅด๊ฒ ๊ณ์ฐํ๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค ($u_i$๋ $i$์ ์ํด ๊ฒฐ์ ๋๋ ์์๊ฐ)
- ์ด๋ฌํ DP๋ฅผ Convex Hull Trick์ผ๋ก ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์์ด ์๋ ค์ ธ ์์ต๋๋ค. $TS_{j}$์ ์ฑ์ง์ ๋งค์ฐ ์ ์ด์ฉํด์ ์คํ์ ์ ์๋ค๊ฐ๋คํ๋ $O(n)$ ํ์ด๋ ๊ฐ๋ฅํ๊ณ โฆ
- Li-Chao Tree๊ฐ์ ๋๋ผ์ด (์ด์ ๋ฆฌ์ฐจ์ค๋ ๋ณ๋ก ๋๋ผ์ด๊น์ง๋ ์๋๋๋ค) ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ฐ์ผ๋ฉด $O(n \log n)$ ์ ํ ์ ์์ต๋๋ค.
- Li-Chao Tree์ ๋ํด์๋ kjp4155๋์ ์๋ฉค ๊ธ ์ด ์ ์๋ ค์ ธ ์๊ณ , ๋ฌด์ง์ฑ ๋ณต๋ถ ๊ฐ๋ฅํ ์ต๊ณ ์ ์ฝ๋์ ๋๋ค.
- ICPC์๋ ๋ช๋ฒ ๋์จ ์๋ฃ๊ตฌ์กฐ์ธ๋งํผ ํ๋ ๊ฐ์ง๊ณ ์์ผ๋ฉด ์ข์๋ฏ ํฉ๋๋ค
- ์ด์๋ ๋ณ๋ก ์ผ๋ก, ์ด ๋ฌธ์ ๋ ๋ฌด๋ ค 20๋ ์ ์ ๋ฌธ์ ๋ผ์ $O(n)$ ์ด ์ ํด์ด๋ฉด์ ($n \log n$ ๊น์ง๋ ํ์ฉํ๊ณ ) $n$์ด 1๋ง๋ฐ์ ์ ๋ฉ๋๋ค. ์์ฆ์ ๋์จ๋ค๋ฉด 500๋ง์ด๋ ์ต์ 100๋ง์ผ๋ก ๋ด์ง ์์์๊น์? 500๋ง ๋ฆฌ์ฐจ์ค๋ ๋ถ๊ฐ๋ฅํ ๊ฑฐ๊ณ , 100๋ง ๋ฆฌ์ฐจ์ค๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
- ์ฌํ๊ฒ๋, ์ด๊ฒ ๋๋ฌธ์ $O(n^2)$์ ๋์ด๋ธํ DP๊ฐ 100ms๋๋ก ํต๊ณผํฉ๋๋ค. ์ธ์์ ํ๋ฆ์ด ๋๊ปด์ง๊ธฐ๋ ํ๋ฉด์, ๋์์ ๋ง์ฝ ์ง๊ธ๋ณด๋ค ์ปดํจํฐ๊ฐ ๋ค์ 10๋ฐฐ ๋นจ๋ผ์ ธ์ ์ง๊ธ $O(n^2)$ ๊ฐ ์ ๋ซ๋ฆฌ๋ ๋ฌธ์ ๋ค์ด ๋ค ๋ซ๋ฆฌ๊ฒ ๋๋ฉด ๊ธฐ์กด ๋ฌธ์ ๋ค์ ์จ๋ผ์ธ์ ์ง ์์์ ๋ฆฌ๋ง์คํฐํ ํ์๊ฐ ์์์๋ ์๊ฒ ๋ค, ํ๋ (์ ์๋ ๋ณ๋ก ์๊ด์๋ ์ผ์ด์ง๋ง) ์๊ฐ๋ ๋ค๊ฒ ํ๋ค์.
JOI 2009-4 ๆฃๆญฉ (BOJ 5573 ์ฐ์ฑ )
- ๋์ด๋ Platinum 4
- ์ด๋ฒ์ฃผ์ ์ ๊ฐ ํฌ์คํ ํ๋ ๋ฌธ์ ์ค ๊ฐ์ฅ ์ด๋ ค์ ์ต๋๋ค.
- $N-1$ ๋ฒ์งธ์ ๋ณด๋ ์ํ๋ฅผ ์๊ณ ์๋ค๋ฉด, $N$๋ฒ์งธ๋ ์ง์ ์๋ฎฌ๋ ์ด์ ํด์ ๋์ฐฉํ ์ ์์ต๋๋ค.
- ํน์ ์นธ์ ์ง๊ธ๊น์ง ๋๋ฌํ ํ์๋ฅผ ์๋ค๋ฉด, ๊ทธ ์นธ์ ์ํ๋ฅผ ์ ์ ์์ต๋๋ค.
- $(1, 1)$ ์ ๋ฐ๋ ํ์๋ $N-1$๋ฒ์ ๋๋ค.
- ์ด๋ค ์นธ์ ๋ฐ๋ ํ์๊ฐ $K$๋ฒ์ด๋ฉด, ๊ณ์ ์ค๋ฅธ์ชฝ๊ณผ ์๋๊ฐ ์๋ค๊ฐ๋คํ๋ฏ๋ก ๊ทธ์ค ์ ๋ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก, ์ ๋ฐ์ ์๋๋ก ๋ด๋ ค๊ฐ๊ฒ ๋ฉ๋๋ค.
- ๋จ, $K$๊ฐ ํ์์ด๋ฉด 0๋ฒ์งธ์ ์ด๋ ๋ฐฉํฅ์ด์๋์ง๋ฅผ ๋ณด๊ณ ํ๋ฒ ๋๊ฐ๋ฉด ๋ฉ๋๋ค.
- ์ฆ,
dp[i][j+1], dp[i+1][j]
์dp[i][j]/2
๋ฅผ (ํ์ํ๋ค๋ฉด 1๋งํผ ๋) ๋ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
- ์ด ์์ด๋์ด๊ฐ ๊ต์ฅํ ๋ ์ฌ๋ฆฌ๊ธฐ ํ๋ค์์ต๋๋ค. ์ญ์ DP๋ ์ด๋ ต๋ค์.