zoukankan      html  css  js  c++  java
  • BCZM : 1.6

    https://blog.csdn.net/kabini/article/details/2311946

    题目大意:

    水房能容纳饮料的总量是V,有一批饮料,每种饮料单个容量都是2的方幂,每种饮料信息如下:(Si,Vi,Ci,Hi)分别对应(名字,容量,满意度),求在满足总容量等于V的情况下,求满意度的最大值。

    分析:
    1、动态规划解法
    没有悬念,优化问题就用动态规划、贪心算法、分支限界轮番上阵就好了。设Opt(V’,i)表示从i到n-1种饮料中,Ci为第i种饮料可能的最大数量,算出总量为V’的方案中满意度之和的最大值。那么递归式就应该是:

    Opt(V’,i)=max{ k * Hi+Opt(V’-Vi * k,i+1)}(k=0,1,2…,Ci,i=0,1,2…,n-1)

    2、动态规划法的变形:备忘录法

    3、贪心算法
    书中的贪心解法似曾相识,把信息按照饮料的容量排序(其中设我们有n0种容量为20的饮料)
    然后按照下面的顺序进行贪心选择:

    (1) 饮料总量为1,从容量为20的饮料中选出快乐指数最大的。

    (2) 饮料总量为2,从容量为21的饮料中选出快乐指数最大的(设为H1),与容量为20的饮料中快乐指数最大的(设为H0),比较H1和2* H0,取出其中最大者为当前最佳选择

    (3) 继续进行下去,直到求出Opt(V,0)

  • 相关阅读:
    最全的常用正则表达式大全
    服务器调用JS
    ASP-----分页功能的实现
    流操作text文件------读取、保存文档
    linq to sql 增删改查
    数据库的高级应用
    SQL---------表的约束
    面向对象--继承练习
    Winform---文件夹操作
    面向对象--里氏转换练习
  • 原文地址:https://www.cnblogs.com/noryes/p/8639261.html
Copyright © 2011-2022 走看看