掌握01分数规划 思想+应用模型总结

理解什么是01分数规划

首先先分开看一下三个关键词:01、分数、规划

这类题一般是给一堆a[i]和一堆b[i],这两个是有联系的,比如第i个物品的收益是a[i],花费是b[i],问选择哪k个物品使得 ∑ 选 出 来 的 a [ i ] ∑ 选 出 来 的 b [ i ] \frac{\sum_{选出来的a[i]}}{\sum_{选出来的b[i]}} b[i]a[i]最大,也就是求选出来的平均性价比最高。

1、那么01指的什么呢
我们可以这么理解,对于这n个数,每个数我们有两种抉择,选他或者不选他,选用1表示,不选用0表示,然后我们用一个c[i]数组代表我们对第i个物品选还是不选。那么我们的函数可以写成 ∑ a [ i ] × w [ i ] b [ i ] × w [ i ] \sum{\frac{a[i] \times w[i]}{b[i] \times w[i]}} b[i]×w[i]a[i]×w[i]
2、分数指的什么呢?
分数就是这类问题的求的答案形式是一个分数
3、而规划就是指我们要规划一个选择,使得答案最小,就是一个最小化的选择。


01分数规划的做法

我们已经理解了01分数规划这类问题是什么了,那么如何做呢?我们先可以假设计算的答案是ans,则有 a n s ≤ ∑ a [ i ] × w [ i ] b [ i ] × w [ i ] ans \le \sum{\frac{a[i] \times w[i]}{b[i] \times w[i]}} ansb[i]×w[i]a[i]×w[i]我们对这个函数计算式进行化简,并求出ans的最大值就等于 ∑ a [ i ] × w [ i ] b [ i ] × w [ i ] \sum{\frac{a[i] \times w[i]}{b[i] \times w[i]}} b[i]×w[i]a[i]×w[i]
a n s × ∑ b [ i ] × w [ i ] ≤ ∑ a [ i ] × w [ i ] ans \times \sum b[i] \times w[i]\le \sum a[i] \times w[i] ans×b[i]×w[i]a[i]×w[i]
∑ a [ i ] × w [ i ] − a n s × ∑ b [ i ] × w [ i ] ≥ 0 \sum a[i] \times w[i] - ans \times \sum b[i] \times w[i]\ge 0 a[i]×w[i]ans×b[i]×w[i]0
w [ i ] × ∑ a [ i ] − a n s × b [ i ] ≥ 0 w[i] \times \sum a[i] - ans \times b[i] \ge 0 w[i]×a[i]ans×b[i]0
根据上式,我们只需要判断选出来的 ∑ a [ i ] − a n s × b [ i ] \sum a[i] - ans \times b[i] a[i]ans×b[i]是否大于等于0即可,那么我们还有两个问题:1、如何选择呢?2、ans是多少呢?对于1,我们可以计算出 a [ i ] − a n s × b [ i ] a[i] - ans \times b[i] a[i]ans×b[i]的值,排个序,取前k个就能保证这个值最大,然后我们计算前k个的和是否大于等于0。那么ans呢,二分啊,明显的,如果ans变大,则 a [ i ] − a n s × b [ i ] a[i] - ans \times b[i] a[i]ans×b[i]就会变小,ans和函数值是单调对应关系,符合二分的特征,所以问题就解决了。


常见模型

1、01规划

裸01规划
例题:POJ2976 Dropping tests

2、01规划与最小生成树

最优比率生成树
例题:POJ2728 Desert King

3、01规划与环

最优比率生成环
例题:P1768 天路
Acwing361 观光奶牛

4、01规划与网络流

最优比率最小割
例题:Acwing2279 网络战争
题解:网络战争

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值