一本通第1266页:例9-10 机器分配(线性动态规划问题及详细解法)
发布时间
阅读量:
阅读量
题目描述
for(int k = 0; k <= j; ++k) // 第i公司拿 k 件物品
{ // k 从 0 到j 开始遍历,取最大值
max_value = max(max_value, a[i][k] + f[i - 1][j - k]);
}
f[i][j] = max_value;
2、后续递归输出策略中,通过设置全局变量 mark_max 用于存储当前分配方案的最大值
#include <bits/stdc++.h>
using namespace std;
const int MaxN = 20;
int m, n, a[MaxN][MaxN];
int f[MaxN][MaxN]; // f[i][j] 前i 公司分 j物品的最大价值
int cnt[MaxN]; // cnt[i]第i家公司分配的物品数量
int mark_max;
void show(int n, int m) //前n公司分配m物品
{
if(n <= 0)
{
return;
}
全部评论 (0)
还没有任何评论哟~
