반응형
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수
www.acmicpc.net
풀이 ) DP
앞에 포스팅한 이친수와 같은 풀이이다.
시작할 수 있는 가짓수는 2가지다. 1로 시작하거나 00으로 시작할 수 있다.
따라서 점화식 memo[n] = memo[n-1] + memo[n-2]이다.
#include <cstdio>
#include <algorithm>
using namespace std;
int memo[1000002] = {0, 1, 2, };
int main(void)
{
int n;
scanf("%d", &n);
for(int i = 3; i <= n; ++i)
memo[i] = (memo[i-1] + memo[i-2]) % 15746;
printf("%d\n", memo[n]);
return 0;
}
반응형
'문제풀이 > 백준' 카테고리의 다른 글
[C++] 백준 - 11727 : 2 x n 타일링 2 (0) | 2020.03.14 |
---|---|
[C++] 백준 - 11726 : 2 x n 타일링 (0) | 2020.03.14 |
[C++] 백준 - 2193 : 이친수 (0) | 2020.03.13 |
[C++] 백준 - 1463 : 1로 만들기 (0) | 2020.03.13 |
[C++] 백준 - 10973 : 이전 순열 (0) | 2020.03.12 |