-
[Algo Rhythm๐บ๐] BOJ 2225 - ํฉ๋ถํดAlgo Rhythm๐บ๐/BOJ 2021. 7. 22. 22:15
๐ซ๋ฌธ์ ๋ถ์
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ ์ ์๋ฅผ ๊ฐ๊ฐ $N,K\ (1\le N,K \le 200)$๋ผ๊ณ ํ์.
๊ทธ๋ฆฌ๊ณ 0๋ถํฐ N๊น์ง์ ์ ์ K๊ฐ๋ฅผ ๋ํด์ ๊ทธ ํฉ์ด N์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ $f(N,K)$๋ผ๊ณ ํ์.
๋ง์ง๋ง์ผ๋ก N์ ๋ง๋ค๊ธฐ ์ํด ๋ํด์ง๋ K๊ฐ์ ์ ์๋ค์ ์์๋๋ก $I_1, I_2, ..., I_K$๋ผ๊ณ ํ์.
$f(N,K)$์ ๊ท์น์ ํ์ ํ๊ธฐ ์ํด $f(2, 3)$๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ ๋ถ์ํด๋ณด์. $f(2, 3)$์ ์๋์ ๊ฐ์ด 6์ด๋ค.
์ด๋ $I_1$๊ณผ ๋๋จธ์ง $I_2, I_3$์ ๊ด๊ณ๋ฅผ ํ์ ํด๋ณด์.
$I_1 = 0$ ์ผ๋ $I_2, I_3$๋ฅผ ๊ตฌํ๋ ๊ฒ์ $f(2, 2)$์ ๊ตฌํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. (1์ด ์ ํ ํ๋ ์์ผ๋ก ํ์ํจ)
$I_1 = 1$ ์ผ๋ $I_2, I_3$๋ฅผ ๊ตฌํ๋ ๊ฒ์ $f(1,2)$๋ฅผ ๊ตฌํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. (2๊ฐ ์ ํ ํ๋ ์์ผ๋ก ํ์ํจ)
$I_1 = 2$ ์ผ๋ $I_2, I_3$๋ฅผ ๊ตฌํ๋ ๊ฒ์ $f(0, 2)$๋ฅผ ๊ตฌํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. (3์ด ์ ํ ํ๋ ์์ผ๋ก ํ์ํจ)
๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ค์ ๋ถ์ํ๋ฉด $N = 0$์ด๊ฑฐ๋ $K = 1$ ์ผ๋ $f(N, K) = 1$ ์์ ์ ์ ์๋ค.
์ด๋ฅผ ์ข ํฉํ๋ฉด $f(N, K)$๋ ๋ค์๊ณผ ๊ฐ๋ค๋ ์ฌ์ค์ ์ ์ ์๋ค.
$f(N, K)= \begin{cases} 1 & if\ N = 0\ or\ K = 1\\ \sum_{i=0}^N f(N - i, K - 1) \mod 10^9 & else \end{cases}$
๐ฅ๋ฌธ์ ํ์ด
$f(n, k)\ (1 \le n \le N,\ 1 \le k \le K)$๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด์ ๋ง๋ ๋ค.
๊ทธ๋ฆฌ๊ณ bottom-up ๋ฐฉ์์ผ๋ก $f(n,k)$๋ฅผ ๊ตฌํ๋๋ฐ ๊ทธ ๋ ์ฐ์ด๋ ์ ํ์์ ์๋์ ๊ฐ๋ค.
$f(N, K)= \begin{cases} 1 & if\ N = 0\ or\ K = 1\\ \sum_{i=0}^N f(N - i, K - 1) \mod 10^9 & else \end{cases}$
โจ๋ณต์ก๋ ๋ถ์
์ ๋ ฅ์ผ๋ก ๋ ์ ์ $N,K\ (1\le N,K \le 200)$์ด ์ฃผ์ด์ง ๋, ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
โฐ์๊ฐ ๋ณต์ก๋ : $O(N^2K)$
- bottom-up ๋ฐฉ์์ผ๋ก $f(N, K)$๋ฅผ ๊ตฌํ๋๋ฐ $O(NK)$๊ฐ ์๋ชจ๋จ.
- solve ํจ์ ์คํ์ $O(N)$์ด ์๋ชจ๋จ.
๐ ๊ณต๊ฐ ๋ณต์ก๋ : $O(NK)$
- $f(N, K)$๋ฅผ ์ ์ฅํ๊ธฐ ์ํด $O(NK)$๊ฐ ์๋ชจ๋จ.
๐์ฝ๋
๐๋ฌธ์ ์ถ์ฒ
https://www.acmicpc.net/problem/2225
2225๋ฒ: ํฉ๋ถํด
์ฒซ์งธ ์ค์ ๋ต์ 1,000,000,000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
'Algo Rhythm๐บ๐ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algo Rhythm๐บ๐] BOJ 16926 - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 1 (0) 2021.08.14 [Algo Rhythm๐บ๐] BOJ 1463 - 1๋ก ๋ง๋ค๊ธฐ (0) 2021.07.22 [Algo Rhythm๐บ๐] BOJ 10971 - ์ธํ์ ์ํ 2 (0) 2021.07.10 [Algo Rhythm๐บ๐] BOJ 1759 - ์ํธ ๋ง๋ค๊ธฐ (0) 2021.06.30 [Algo Rhythm๐บ๐] BOJ 18290 - NM๊ณผ K(1) (0) 2021.06.30