Dynamic Programming - B

public
yeskendir.sultanov Mar 31, 2024 Never 102
Clone
C++ Bdp.cpp 54 lines (43 loc) | 764 Bytes
1
#include <bits/stdc++.h>
2
#define ll long long
3
4
using namespace std;
5
6
int main() {
7
std::ios_base::sync_with_stdio(false);
8
cin.tie(0);
9
cout.tie(0);
10
int n;
11
cin >> n;
12
ll dp[n + 1][2] = {};
13
14
dp[1][0] = dp[1][1] = 1;
15
for (int i = 2; i <= n; ++i) {
16
dp[i][0] = dp[i - 1][0] + dp[i - 1][1];
17
dp[i][1] = dp[i - 1][0];
18
}
19
20
cout << dp[n][0] + dp[n][1];
21
22
return 0;
23
}
24
25
/*
26
n = 3
27
000
28
001
29
010
30
011 - x
31
100
32
101
33
110 - x
34
111 - x
35
36
dp[len][0]
37
dp[len][1]
38
39
0
40
1
41
42
dp[1][0] = 1
43
dp[1][1] = 1
44
45
00, 10
46
01
47
dp[2][0] = dp[1][0] + dp[1][1] = 1 + 1 = 2
48
dp[2][1] = dp[1][0] = 1
49
50
000, 100, 010
51
001, 101
52
dp[3][0] = dp[2][0] + dp[2][1] = 2 + 1 = 3
53
dp[3][1] = dp[2][0] = 2
54
*/
55
56