01分数规划问题初步


01分数规划问题适用于此类题目:

  • 题意为求出类似 w=ni=1valini=1costi 的最值问题,且此时上下元素个数相同

01分数规划的一般思路:

它源自于“求值 判定”的思想,即为了求一个数值,采用二分枚举答案逼近这个极值。显然判定一个解是否满足题意是比求出符合题意的解要简单的。

引用上述公式,为了求

wmax=ni=1valini=1costi
我们可以将其转化为
ni=1valini=1costiw
此时分数是不好处理的,于是我们考虑将其整理为整式:
i=1nvaliwi=1ncosti
移项得到
i=1n(valiwcosti)0

有了这个式子,我们就可以在二分答案的时候check了。


01分数规划举例:最优比率生成树

(说实在话没有找到比较好的裸题……poj那个也比较毒)

Description:

给定一张包含n个结点,m条边的无向连通图,边上有两个属性:价值 val 与花费 cost ,求出该图的生成树,使得路径权值的平均值最大:

edge(u,v)MSTvaledge(u,v)MSTcost

Solution:

w=edge(u,v)MSTvaledge(u,v)MSTcost
则按照上述定义就有
edge(u,v)MST(valwcost)0
定义 dist=valwcost ,则最终该问题转化为是否存在生成树,使得
{distedgeMST}0
即可。

对于每次check,我们预处理出每条边的 dist ,再用Kruskal算法跑一遍即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值