#include <iostream> #include <algorithm> #include <string.h> using namespace std; int T, N; long long dp[70]; long long solve(int n) { if(dp[n] != 0) { return dp[n]; } for(int i = n-1; i >= n-4; i--) { dp[n] += solve(i); } return dp[n]; } int main(void) { // freopen("B9507_input.txt", "r", stdin); cin >> T; dp[0] = 1, dp[1] = 1, dp[2] = 2, dp[3] = 4; while(T--) { cin >> N; cout << solve(N) << endl; } return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 11048] 이동하기 (DFS, DP) (C/C++) (★) (0) | 2020.03.23 |
---|---|
[백준 1890] 점프 (DFS, DP) (C/C++) (0) | 2020.03.22 |
[백준 1904] 타일 (DP) (C/C++) (0) | 2020.03.22 |
[백준 2096] 내려가기 (DP) (C/C++) (★★) (0) | 2020.03.22 |
[백준 1915] 가장 큰 정사각형 찾기 (DP) (C/C++) (★) (0) | 2020.03.17 |