0-1分数规划

发布时间 2023-05-25 20:30:13作者: Bloodstalk

适用问题

有若干物品,每个物品有 \(a_i\)\(b_i\) 两个权值。
选出若干个物品使得

\[\frac{\sum a_i}{\sum b_i} \]

最大/最小。若干个物品的选取可能有一定的约束条件。

这个问题等价于给出 \(a_i\)\(b_i\) ,求一组 \(w_i \in \{0,1\}\) ,最大化或者最小化

\[\frac{\sum w_i \cdot a_i}{\sum w_i \cdot b_i} \]

最常用方法

直接化身 \(\textcolor{black}{U}\textcolor{red}{m\_nik}\) ,上二分!

最大化:二分一个答案 \(x\)

\[\frac{\sum w_i \cdot a_i}{\sum w_i \cdot b_i} \ge x \]

\[\sum w_i \cdot a_i - x\Sigma w_i \cdot b_i \ge 0 \]

\[\sum w_i \cdot (a_i - xb_i) \ge 0 \]

如果最终结果 \(\ge 0\) ,说明 \(x\) 可行,否则不可行。

最小化:二分一个答案 \(x\) ,$ \frac{\sum w_i \cdot a_i}{\sum w_i \cdot b_i} $ \(\leq x\)

\[\sum w_i \cdot a_i - x\sum w_i \cdot b_i \leq 0 \]

\[\sum w_i \cdot (a_i - xb_i) \leq 0 \]

如果最终结果 \(\leq 0\) ,说明 \(x\) 可行,否则不可行。

解题思路

1.明确 \(a_i\) , \(b_i\) ,以 \(a_i - xb_i\) 作为新权值求和。

2.明确约束条件。

后言

没错,这玩意就这么点,难点还是在于结合不同的题去考虑。