5์ 1์ฃผ์ฐจ Weekly PS
Apr 26 - May 09, 2021. ์ด๋ฒ ์ฃผ์ฐจ๋ 4์ ๋ง ๊ฒ๋ค๋ ํฌํจ๋์ด ์๋ค. ์ด์ ๋ธ๋ก๊ทธ์์ ํ์๋ weekly PS๋ฅผ ๋ค์ ์จ๋ณด๋ ค๊ณ ํ๋ค. ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ ์์ ๋๋ฌด ๋ชปํ๊ฑฐ ๊ฐ์์โฆ ์ํ๊ธฐ๊ฐ 2์ฃผ์ฉ์ ์ ์ธํ๊ณ , 5์์๋ ์๋ง 1-4์ฃผ์ฐจ๊น์ง๋ ์์ ์์ ์ด๋ค.
Google Codejam 2021, Round 1B
1๋ฒ Broken clock์ small๊ณผ middle, 2๋ฒ subtransmutation์ small๊ณผ large๋ฅผ ํ๊ณ 1101๋ฑ์ผ๋ก 1B๋ฅผ ํต๊ณผํ๋ค. ์ฌํด๋ Round 2์๋ ํฐ ์๋ฏธ๋ฅผ ๋๊ณ ์์ง ์๋ค (์์ ์ฝ๋ฉ ์ฐ์ต์ ๋๋ฌด ๋ชปํด์..)
๋๋ผ์ด ๊ตฌํ ๋์ ์ด ์์ ์์ ์ด์๊ธฐ ๋๋ฌธ์ ๋ฏธ์ฐ์ ๋ฐฉ์งํ๊ณ ์ python์ผ๋ก ๋ฐ์๊ณ , ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ Broken clock ๊ตฌํ์ 1์๊ฐ ๋ฐ ์ ๋๋ฅผ ๋ฐ๊ณ 9๋ฒ์ ์ ์ถํ์ง๋ง large๋ฅผ ๋ง์ง ๋ชปํ๋ค๋๊ฑด ์ข ์ถฉ๊ฒฉ์ ์ด๋ค.
๋ฌธ์ ํ์ด์ ๋ํด ๊ฐ๋ตํ ์๊ธฐํ์๋ฉดโฆ
Broken Clock, Small-Middle
Middle๊น์ง๋ ๊ฐ๋ฅํ ์๊ฐ์ด ์ ์ ์ด ๋งํผ์ด๋ผ์ 43,200๊ฐ์ง๋ฐ์ ์๊ณ , ์ด ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์ง์ ํ์ธํด๋ ๋๋ํ ์๊ฐ์ด๋ค.
์ฝ๋ : ๋งํฌ
Subtransmutation, Full
์ ๋ฌธ์ ์์๊ฐ ์ด๋ฐ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๋๋ํ $K$ ํ๊ฐ๋ก ์์ํด์ ๋ง๋ค ์ ์๋์ง๋ฅผ ๋งค๋ฒ ํ์ธํด๋ ์๊ฐ์ด ๋๋ํ๊ณ , ์ด๋ $K$๋ถํฐ 1๋ฒ๊น์ง ๊ฑฐ๊พธ๋ก ์ค๋ฉด์ Greedyํ๊ฒ DP๋ฅผ ๊ณ์ฐํด์ฃผ๋ฉด ๋๋ค. ๋ง์ด ์กฐ๊ธ ์ด์ํ๋ฐ, ๊ผญ ํ์ํ ๊ฐ์๋งํผ ๋นผ๋๊ณ ๋๋จธ์ง๋ ์ ๋ถ ๋์ค์ ์ฐ์ผ์๋ ์์ผ๋ ์์๊ฑธ๋ก ๋ถํดํด์ค๋ค๊ณ ์๊ฐํ๋ฉด ๊ฐ๋จํ๋ค. ๋ง๋ณด๋ค ์ฝ๋๊ฐ ํจ์ฌ ์ฌ์ด ๋ฌธ์ .
์ฝ๋ : ๋งํฌ
Problems
BOJ 20191 ์ค์๋ง (KOI 2020)
๋์ด๋ : Gold 3 (BOJ)
๋ฌธ์์ด S์ T๊ฐ ์ฃผ์ด์ง ๋, T๋ฅผ ๋ช ๋ฒ concatํด์ผ $T^n$ (concat) ์ด $S$๋ฅผ subseqeunce๋ก ํฌํจํ๋์ง ๋ฌป๋ ๋ฌธ์ . S์ ๊ฐ ๊ธ์์ ๋ํด์, ์ด ๊ธ์๊ฐ T์ ๋ช๋ฒ์งธ์ ๋์๋ ์ ์๋์ง ๋ฏธ๋ฆฌ ๋ชจ๋ ํ์ธํ๋ค. Greedyํ๊ฒ, ๋ด ์ด์ ๊ธ์๋ค๋ณด๋ค ๋ค์ ์๊ธฐ๋ง ํ๋ค๋ฉด ๋์ํ ์ ์๋ ์์น ์ค ์ต๋ํ ์์ ๋์ํด์ผ ๋ฌด์กฐ๊ฑด ์ด๋์ด ๋๋ค. ๊ทธ๋ฌ๋ ๋์ด์ ๋์ ๊ฐ๋ฅํ ์์น๊ฐ ์๋ค๋ฉด, ์๋ก์ด T๋ฅผ ํ๋ ์ถ๊ฐํด์, ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ๋์ํด์ผ ํ๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ ์ฒ๋ฆฌ $O(S + T)$ ๋ฅผ ์ํํจ์ผ๋ก์จ, $S$์ ๊ฐ ๊ธ์์ ๋ํด $\log T$ ์๊ฐ์ ์์น๋ฅผ ์ฐพ์์ค ์ ์์ผ๋ฏ๋ก $O(S \log T)$ ์๊ฐ์ ํด๊ฒฐ๋๋ค.
์ฝ๋ : ๋งํฌ
BOJ 3006 ํฐ๋ณด์ํธ (COCI 2007)
๋์ด๋ : Platinum 4 (BOJ)
์ธ๊ทธ๋จผํธ ํธ๋ฆฌ์ ๊ฐ element์ ์์น๋ฅผ ์ ์ฅํ๊ณ , segment tree๋ฅผ ์ด์ฉํ์ฌ ๋ค์ด๋๋ฏนํ๊ฒ ๋ญ๊ฐ๋ฅผ ๊ฐฑ์ ํ๋ ์ข์ ์ฐ์ต๋ฌธ์ ์ง๋ง ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ ํ์ ํ๊ณ ๋๋ฉด ์ด๋ ต์ง ์๋ค. Segtree๋ฅผ ์ด์ฉํ๋ฉด ๊ตฌ๊ฐ $(a, b)$ ์ 1์ ๊ฐ์ (๋จ์ ์๋ ์์์ ๊ฐ์) ๋ฅผ ์ฝ๊ฒ ์ ์ ์๋ค.
์ฝ๋ : ๋งํฌ