본문 바로가기

백준/DP

백준 16456 - 하와와 대학생쨩 하와이로 가는 거시와요~

728x90
728x90

icpc.me/16456

 

몇가지 항에 대해 직접 손으로 경우의 수를 찾아보면

 

$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