动态规划---二维费用问题
一:二维费用背包问题
(一)题目详述


(二)实现思路
对比01背包问题即可
(三)算法实现
#include <iostream> #include <algorithm> using namespace std; const int N = 110; int f[N][N]; //表示体积和重量两种费用 int n, v, m; int main() { cin >> n >> v >> m; //输入物品件数、背包最大容量,背包最大承重 for (int i = 0; i < n;i++) //循环物品 { int a, b, c; //表示当前物品的体积、质量、价值 cin >> a >> b >> c; //下面开始计算代价,原本只有一个,现在变为2个,使用多重循环即可 for (int j = v; j >= a; j--) for (int k = m; k >= b; k--) f[j][k] = max(f[j][k], f[j - a][k - b] + c); //对应不选和选两种情况 } cout << f[v][m] << endl; system("pause"); return 0; }

浙公网安备 33010602011771号