알고리즘 문제

[C/C++ 백준 11727번] 2×n 타일링 2 (Silver 3)

새파란 공대생 2020. 5. 6. 22:11

https://www.acmicpc.net/problem/11727

 

11727번: 2×n 타일링 2

2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.

www.acmicpc.net

저번 문제에서 2x2 짜리 타일이 하나 추가된 문제이다. 사실 초기항인 N[2]가 3으로 바뀐것과, 점화식의 형태가 N[i]=N[i-1]+2*N[i-2]로 바뀐것만 적용하면 나머지 부분은 모두 같다. 해결!


1
2
3
4
5
6
7
8
9
10
#include <cstdio>
int main(void){
    int n;
    scanf("%d"&n);
    int tile[1001]={0,1,3,};
    for(int i=3; i<=n; i++){
        tile[i]=(tile[i-1]+2*tile[i-2])%10007;
    }
    printf("%d",tile[n]);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter