何爲01分數規劃
01分數規劃解決的是這麼一類問題:
從給定的數列ai、bi,求∑i=1bi∗pi∑i=1ai∗pi的最值問題
其中p爲一個01數列。
也就是從一個二元組列表中選一些二元組,求x項之和/y項和的最值。
常常是求最大中的最小、最小中的最大。
這類問題我們通常用二分+分數規劃來做
詳解
直接求解不容易,我們可以考慮如何判斷某個答案是否合法。
下面以最小值爲例:
假設二分出答案ans
令∑i=1bi∗pi∑i=1ai∗pi中分母爲A,分子爲B
那麼=A/B>=ans
=A>=ans∗B
=A−B∗ans>=0
把AB兩個式子展開:
=∑i=1ai∗pi−bi∗pi∗ans>=0
所以當最後一個式子成立的時候答案ans合法。
我們有注意到ans越大越不好滿足,所以這個是有單調性的。
如果ans不行,那麼比ans大的都不能滿足;如果ans合法,那麼比ans小的都合法。
因此我們可以二分ans,然後判斷。
推薦題目:
最小路徑密度
題解