백준
백준 소스코드 [C++] 14852 타일 채우기 3
Hani_Levenshtein
2020. 8. 19. 00:00
https://www.acmicpc.net/problem/14852
14852번: 타일 채우기 3
첫째 줄에 경우의 수를 1,000,000,007로 나눈 나머지를 출력한다.
www.acmicpc.net
백준 소스코드 [C++] 14852 타일 채우기 3
#include <iostream>
#include <cmath>
using namespace std;
long long int arr[1000001][2];
long long int tiling(int n) {
arr[0][0] = 0;
arr[1][0] = 2;
arr[2][0] = 7;
arr[2][1] = 1;
for (int i = 3;i <= n;i++) {
arr[i][1] = (arr[i - 1][1] + arr[i - 3][0]) % 1000000007;
arr[i][0] = (3 * arr[i - 2][0] + 2 * arr[i - 1][0] + 2 * arr[i][1]) % 1000000007;
}
return arr[n][0];
}
int main() {
int n;
cin >> n;
cout << tiling(n);
return 0;
}