分数规划

Posted wronin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分数规划相关的知识,希望对你有一定的参考价值。

普通01分数规划

由n个物品,每个物品由两个属性a和b,选出k个物品,使Σai / Σbi 的值最大

设x=Σai / Σbi, F()=Σa-xΣb, D()=a-xb

当F()=0时,则为答案;当F()>0时,则说明答案小了;当F()<0时,则说明答案大了

二分答案

double l=0,r=1.0,mid;
while(r-l>1e-5) 
    mid=(l+r)/2;
    if(work(mid)) l=mid;
    else r=mid;

int work(double x) 
    for(int i=0;i<n;i++) d[i]=a[i]-x*b[i];
    sort(d,d+n);
    double F=0;
    for(int i=n-1;i>=n-k;i--) F+=d[i];
    return F>=0;

最优比率生成树

最优比率生成环

01分数规划+树形背包

以上是关于分数规划的主要内容,如果未能解决你的问题,请参考以下文章

分数规划

[例题/总结]0/1分数规划

用动态规划求解分数背包问题

分数规划

01分数规划

0-1分数规划