본문 바로가기
알고리즘/DP

9461 파도반 수열

by tryotto 2019. 7. 15.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
int arr[1000005= { 0 };
long long dp[105= { 0 };
 
void makeDP(int maxV) {
    dp[1= 1; dp[2= 1; dp[3= 1;
    dp[4= 2; dp[5= 2;
 
    for (int i = 6; i <= maxV; i++) {
        dp[i] = dp[i - 1+ dp[i - 5];
    }
}
 
int main() {
    int t;
    scanf("%d"&t);
 
    int maxV = 0;
    for (int i = 1; i <= t; i++) {
        scanf("%d"&arr[i]);
 
        if (maxV < arr[i]) {
            maxV = arr[i];
        }
    }
 
    makeDP(maxV);
 
    for (int i = 1; i <= t; i++)
        printf("%lld\n", dp[arr[i]]);
}
cs


'알고리즘 > DP' 카테고리의 다른 글

DP 정리> 타일 채우기  (0) 2020.01.12
1720 타일코드  (0) 2020.01.11
10942 팰린드롬?  (0) 2019.07.15
1695 팰린드롬 만들기  (0) 2019.07.15
1563 개근상  (0) 2019.07.14