[1309] 동물원
BOJ/DP2018. 2. 1. 20:23
d[n][k] : n번째 줄에 상태가 k일 때, n번째 줄까지 사자를 배치할 수 있는 경우의 수
- 소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> #define MOD 9901 int d[100001][3]; int go(int n, int k) { int a, b; if(n == 0) return 1; if(d[n][k]) return d[n][k]; a = go(n-1, (k+1)%3); b = go(n-1, (k+2)%3); if(k == 0) a += go(n-1, 0); return d[n][k] = (a+b)%MOD; } int main() { int n; scanf("%d", &n); printf("%d\n", go(n, 0)); return 0; } | cs |
>> k = 0 인 경우는 둘 다 비워있는 상태.
>> k = 1 인 경우는 사자를 왼쪽에 배치, k = 2 인 경우는 사자를 오른쪽에 배치한 상태
'BOJ > DP' 카테고리의 다른 글
[2302] 극장 좌석 (0) | 2018.02.05 |
---|---|
[1937] 욕심쟁이 판다 (0) | 2018.02.01 |
[1932] 숫자삼각형 (0) | 2018.02.01 |
[1149] RGB 거리 (0) | 2018.01.30 |
[1463] 1로 만들기 (0) | 2018.01.26 |