专题 01分数规划保证你看不懂

问题简介

01 01 01分数规划是一类经典的问题。简单的来说,就是有 n n n个二元组 ( c o s t i , v a l u e i ) (cost_i,value_i) (costi,valuei),从中选取一些二元组,使得 ∑ i = 1 i ⩽ n c o s t i × x i ∑ i = 1 i ⩽ n v a l u e i × x i \frac{\sum_{i=1}^{i\leqslant n} cost_i\times x_i}{\sum_{i=1}^{i\leqslant n} value_i\times x_i} i=1invaluei×xii=1incosti×xi最大(或最小)。它还会与其他问题结合,如网络流等。这种题一类通用的解法就是二分答案或 D i n k e l b a c h Dinkelbach Dinkelbach算法。在本章中我们采用的是二分答案来求解问题。

常见模型

模型1 基本01分数规划与贪心

例题1 LOJ #149. 01 分数规划
给你 n n n个物品,每个物品有两个属性 a i a_i ai b i b_i bi ,求一组解 x i ( 1 ⩽ i ⩽ n , x i = 0 或 1 ) x_i (1\leqslant i\leqslant n,x_i =0或1) xi(1in,xi=01)使

∑ i = 1 i ⩽ n a i × x i ∑ i = 1 i ⩽ n b i × x i \frac{\sum_{i=1}^{i\leqslant n} a_i\times x_i}{\sum_{i=1}^{i\leqslant n} b_i\times x_i} i=1inbi×xii=1inai×xi
最大,且恰好有 k k k x i x_i xi 1 1 1,并求出这个值。

思路 我们可以二分 r r r最大值并设它等于 m i d mid mid,则
∑ i = 1 i ⩽ n a i × x i ∑ i = 1 i ⩽ n b i × x i ⩾ m i d \frac{\sum_{i=1}^{i\leqslant n} a_i\times x_i}{\sum_{i=1}^{i\leqslant n} b_i\times x_i}\geqslant mid i=1inbi×xii=1inai×ximid
变形得
∑ i = 1 i ⩽ n a i × x i − m i

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值