Algorithm Problem/Python
[python] ๋ฐฑ์ค - 2133. ํ์ผ ์ฑ์ฐ๊ธฐ
deo2kim
2020. 10. 7. 10:50
๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
S2 | DP
์ด๋ฐ๋ฌธ์ ๋ ์ญ์ ๋จ๊ณจ DP๋ฌธ์
์ผ๋จ ์์ผ๋ก ๊ตฌํด๋ดค๋ค.
i == 0, 2, 4, 6 ( ํ์ ์ผ ๊ฒฝ์ฐ๋ ์ ์ธํจ )
๊ฒฝ์ฐ์์ == 1, 3, 11, 41
์ ํ์
dp[i] = dp[i-2] * 3 + (dp[2] ~ dp[i-2]) * 2 + 2
i๊ฒฝ์ฐ์์ = ์ด์ ์ ๊ฒฝ์ฐ์ ์ * 3 + ์ด์ ์ ๊ฒฝ์ฐ์ ์ ๋ค * 2 + i๋ง ๋ง๋๋ ๊ฒฝ์ฐ
๐ป์์ค ์ฝ๋
N = int(input())
if N % 2:
print(0)
else:
dp = [0] * (N + 1)
dp[0], dp[2] = 1, 3
for i in range(4, N + 1, 2):
dp[i] = dp[i - 2] * 3 + 2
for j in range(2, i - 2, 2):
dp[i] += dp[j] * 2
print(dp[N])
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/2133
2133๋ฒ: ํ์ผ ์ฑ์ฐ๊ธฐ
3×N ํฌ๊ธฐ์ ๋ฒฝ์ 2×1, 1×2 ํฌ๊ธฐ์ ํ์ผ๋ก ์ฑ์ฐ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํด๋ณด์.
www.acmicpc.net
๋ฐ์ํ