分数规划
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分数规划+树形背包
以上是关于分数规划的主要内容,如果未能解决你的问题,请参考以下文章