- 题解
B395
- @ 2026-3-24 16:33:41
#include #include #include using namespace std;
int main() { int m, n; cin >> m >> n; int k; cin >> k; vector<vector> cylinders(k, vector(3)); for (int i = 0; i < k; ++i) { cin >> cylinders[i][0] >> cylinders[i][1] >> cylinders[i][2]; } vector<vector> dp(m + 1, vector(n + 1, INT_MAX)); dp[0][0] = 0;
for (const auto &cyl : cylinders) {
int a = cyl[0], b = cyl[1], c = cyl[2];
for (int i = m; i >= 0; --i) {
for (int j = n; j >= 0; --j) {
if (dp[i][j] != INT_MAX) {
int new_i = min(i + a, m);
int new_j = min(j + b, n);
if (dp[new_i][new_j] > dp[i][j] + c) {
dp[new_i][new_j] = dp[i][j] + c;
}
}
}
}
}
cout << dp[m][n] << endl;
return 0;
}
包对
0 条评论
目前还没有评论...