728x90
728x90
몇가지 항에 대해 직접 손으로 경우의 수를 찾아보면
$f(n) = f(n - 1) + f(n - 3)$ 형태의 점화식이 성립됨을 찾을 수 있다.
DP를 통해 이 점화식을 풀자.
전체코드
더보기
#include <bits/stdc++.h>
#define mod 1000000009
using namespace std;
using ll = long long;
ll dp[50000];
int main()
{
int n;
cin >> n;
dp[0] = dp[1] = 1;
dp[2] = 2;
for (int i = 3; i < n; ++i)
dp[i] = (dp[i - 1] + dp[i - 3]) % mod;
cout << dp[n - 1];
}
728x90
728x90
'백준 > DP' 카테고리의 다른 글
백준 1965 - 상자 넣기 (0) | 2020.10.06 |
---|---|
백준 2092 - 집합의 개수 (0) | 2020.10.06 |
백준 15681 - 트리와 쿼리 (0) | 2020.07.12 |
백준 2056 - 작업 (0) | 2020.07.11 |
백준 1915 - 가장 큰 정사각형 (0) | 2020.06.22 |