• 01 分数规划


    推荐博客 : http://www.cnblogs.com/perseawe/archive/2012/05/03/01fsgh.html

    学习这东西源于牛客多校大佬们的一道签到题....

    先来看一个问题

    01分数规划问题:所谓的01分数规划问题就是指这样的一类问题,给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价。如果选取i,定义x[i]=1否则x[i]=0。每一个物品只有选或者不选两种方案,求一个选择方案使得R=sigma(a[i]*x[i])/sigma(b[i]*x[i])取得最值,即所有选择物品的总收益/总代价的值最大或是最小。

    问题分析 :

     数学分析中一个很重要的方法就是分析目标式,这样我们来看目标式。

    R=sigma(a[i]*x[i])/sigma(b[i]*x[i])

    我们来分析一下他有什么性质可以给我们使用。

    我们先定义一个函数F(L):=sigma(a[i]*x[i])-L*sigma(b[i]*x[i]),显然这只是对目标式的一个简单的变形。分离参数,得到F(L):=sigma((a[i]-L*b[i])*x[i])。这时我们就会发现,如果L已知的话,a[i]-L*b[i]就是已知的,当然x[i]是未知的。记d[i]=a[i]-L*b[i],那么F(L):=sigma(d[i]*x[i]),多么简洁的式子。我们就对这些东西下手了。

    显然对于上面的式子,当 L 取最大值时, F(L) = 0 , 而当 L 的取值大于最大值时,此时F(L)的值是 < 0 的, 当L取小时, F(L) > 0 ,那么我们这里根据这个性质就可以去二分 L 了

    然后再去选择物品,能少选就少选 !

     牛客入门题目 : https://www.cnblogs.com/ccut-ry/p/9416638.html

    东北日出西边雨 道是无情却有情
  • 相关阅读:
    CSS-16-margin值重叠问题
    CSS-15-定位
    CSS-14-浮动
    CSS-13-块级元素和行内元素
    CSS-12-盒子模型
    CSS-11-外边距
    CSS-10-内边距
    CSS-09-背景属性
    CSS-08-边框属性设置
    CSS-07-CSS文本设置
  • 原文地址:https://www.cnblogs.com/ccut-ry/p/9416453.html
Copyright © 2020-2023  润新知