AcWing 8. 二维费用的背包问题
原题链接
中等
作者:
Belous
,
2019-05-11 20:44:48
,
所有人可见
,
阅读 1609
C++ 代码
#include <iostream>
using namespace std;
#define Max(a, b) ((a > b) ? (a) : (b))
const int ArrMax{110};
int dp[ArrMax][ArrMax];
int main(int argc, char **argv)
{
int N, V, M;
cin >> N >> V >> M;
while (N--)
{
int v, m, w;
cin >> v >> m >> w;
for (int ind1 = V; ind1 >= v; --ind1)
for (int ind2 = M; ind2 >= m; --ind2)
dp[ind1][ind2] = Max(dp[ind1][ind2], dp[ind1 - v][ind2 - m] + w);
}
cout << dp[V][M] << endl;
return EXIT_SUCCESS;
}