OI模板 分数规划

本文详细介绍了分数规划问题,包括如何通过二分法求解最大值和最小值,并给出了若干例题,如Luogu P4377、[HNOI2009]最小圈和[JSOI2016]最佳团体等,涉及到背包、最小生成树、最短路等算法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分数规划

分数规划用来求一个分式的极值:给出 a i , b i a_i,b_i ai,bi,求一组 w i ∈ { 0 , 1 } w_i\in\{0,1\} wi{ 0,1} 使 ∑ i = 1 n a i w i ∑ i = 1 n b i w i \displaystyle\frac{\sum_{i=1}^n a_iw_i}{\sum_{i=1}^n b_iw_i} i=1nbiwii=1naiwi 最小化或最大化,再加上一些奇怪的限制。

所以背包、树形背包、最小生成树、最短路、二分图最大匹配等问题都可以套个分数规划变得毒瘤。


求解

二分求解

最大值:二分一个答案 m i d mid mid,则:
∑ i = 1 n a i w i ∑ i = 1 n b i w i > m i d    ⟹    ∑ i = 1 n a i w i − m i d × ∑ i = 1 n b i w i > 0    ⟹    ∑ i = 1 n w i ( a i − m i d × b i ) > 0 \displaystyle\frac{\sum_{i=1}^n a_iw_i}{\sum_{i=1}^n b_iw_i}>mid \\ \implies\sum_{i=1}^n a_iw_i - mid \times\sum_{i=1}^n b_iw_i>0 \\ \implies\sum_{i=1}^nw_i(a_i-mid \times b_i) > 0 i=1nbiwii=1naiwi>midi=1naiwimid×i=1nbiw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值