Dynamic Programming - H

public
yeskendir.sultanov Mar 31, 2024 Never 105
Clone
C++ Hdp.cpp 39 lines (31 loc) | 850 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, m;
11
cin >> n >> m;
12
13
int cost[n + 1][m + 1];
14
15
for (int i = 1; i <= n; ++i) {
16
for (int j = 1; j <= m; ++j) {
17
cin >> cost[i][j];
18
}
19
}
20
21
int dp[n + 1][m + 1] = {};
22
dp[1][1] = cost[1][1];
23
for (int i = 2; i <= m; ++i) {
24
dp[1][i] = dp[1][i - 1] + cost[1][i];
25
}
26
27
for (int i = 2; i <= n; ++i) {
28
dp[i][1] = dp[i - 1][1] + cost[i][1];
29
}
30
31
for (int i = 2; i <= n; ++i) {
32
for (int j = 2; j <= m; ++j) {
33
dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + cost[i][j];
34
}
35
}
36
37
cout << dp[n][m];
38
return 0;
39
}
40
41
42
43
44
45