#include <iostream> #include <algorithm> #include <string.h> using namespace std; int T, N; int dp0[45]; int dp1[45]; int solve0(int n) { if(n == 0) { return 1; } else if(n == 1) { return 0; } if(dp0[n] != 0) { return dp0[n]; } dp0[n] = solve0(n-1) + solve0(n-2); return dp0[n]; } int solve1(int n) { cout << n << endl; if(n == 0) { return 0; } else if(n == 1) { return 1; } if(dp1[n] != 0) { return dp1[n]; } dp1[n] = solve1(n-1) + solve1(n-2); return dp1[n]; } int main(void) { // freopen("B1003_input.txt", "r", stdin); cin >> T; while(T--) { cin >> N; cout << solve0(N) << " " << solve1(N) << endl; } return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 1149] RGB 거리 (DP) (C/C++) (★) (0) | 2020.03.15 |
---|---|
[백준 1932] 정수 삼각형 (DP) (C/C++) (0) | 2020.03.15 |
[백준 10211] Maximum Subarray (DP) (C/C++) (★★) (0) | 2020.03.15 |
[백준 17485] 진우의 달 여행 (DP) (C/C++) (★) (0) | 2020.03.13 |
[백준 12865] 평범한 배낭 (DP) (C/C++) (★) (0) | 2020.03.13 |