Recent Posts
Notice
No Rules Rules
타일 채우기 (feat. 백준, 2133번) 본문
728x90
반응형
타일 채우기
https://www.acmicpc.net/problem/2133
// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false), cin.tie(NULL);
register int N, dp[16]{1};
cin >> N;
if(N & 1 == 1){
cout << 0;
}
else{
for(register int i = 1, j; i <= N / 2; ++i){
dp[i] += dp[i - 1] * 3;
for (j = 2; j <= i; j++)
dp[i] += dp[i - j] * 2;
}
cout << dp[N / 2];
}
return 0;
}
// *&)*@*
반응형
- 오랜만에 dp 유형의 문제입니다.
- 타일의 3 X N 중 N이 홀수인 경우는 무조건 0이 출력됩니다. (문제의 힌트 그림 참조)
- 또한 N이 짝수일때마다 그 이전 짝수의 3배가 추가된만큼 경우의 수가 늘어납니다.
- 따라서 이를 이용하여 dp 식을 유도하면 되겠습니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
팰린드롬인지 확인하기 (feat. 백준, 10988번) (0) | 2022.11.10 |
---|---|
베스트셀러 (feat. 백준, 1302번) (0) | 2022.11.09 |
명령 프롬프트 (feat. 백준, 1032번) (0) | 2022.11.09 |
용액 (feat. 백준, 2467번) (0) | 2022.11.09 |
음식물 피하기 (feat. 백준, 1743번) (0) | 2022.11.08 |
Comments