Advertisement

一本通第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)

还没有任何评论哟~