分数规划-学习笔记

简介

分数规划是处理这样一种问题:有 \(n\) 个物品,每个物品有两个权值 \(a_i,b_i\) ,选择一些物品集合 \(X\),最大化以下柿子:

\[\frac{\sum_{i=1}^{k}a_{X_i}}{\sum_{i=1}^{k}b_{X_i}} \]

更加形象的,选一些物品,使得这些物品的 \(a_i\) 和与 \(b_i\) 和的比值最大。

解决

这种问题涉及到比值,也就是说,你可以选择 \(b_i\) 小的,也可以选择 \(a_i\) 大的,选择一个物品会造成多方面的影响,因此无法直接解决。但我们可以侧面考虑这个问题,给一个比值 \(mid\) ,判断柿子是否可以取到 \(mid\) 。也就是说,比值已经固定,只需要判断就可以了。设原式分子为 \(A\),分母为 \(B\),我们相当于要判断是否存在 \(A,B\) 满足:

\[\frac{A}{B}>=mid\\ A>=mid\times B\\ \left(\sum_{i=1}^{k}a_{X_i}\right)>=\left(\sum_{i=1}^{k}b_{X_i}\times mid\right)\\ \left(\sum_{i=1}^{k}a_{X_i}\right)-\left(\sum_{i=1}^{k}b_{X_i}\times mid\right)>=0\\ \]

相当于把 \(b_i\) 全部乘以 \(mid\) ,判断是否能够存在 \(a_i-b_i\times mid >=0\)。这样就很简单了,因为这个东西满足单调性,因此直接二分就可以了。当然很多题目会加一些限制,这时候就需要具体题目具体讨论,\(check\) 的时候使用更多东西。

例题

[USACO18OPEN] Talent Show G

模板题。

P4322 [JSOI2016]最佳团体

树上背包

P3199 [HNOI2009]最小圈

判负环

P3705 [SDOI2017]新生舞会

网络流

posted @ 2022-03-07 21:04  编程客  阅读(34)  评论(0编辑  收藏  举报