牛客網多校5 gpa(01分數規劃)

2021-08-22 04:25:36 字數 676 閱讀 9081

題目:n個物品每個物品的重量是si,價值是si*ci,刪除最多k個物品使得剩下的物品的

思路:01分數規劃。

條件c(x):可以挑選使得單位重量的物品價值不小於x->求滿足條件的最大x->如何判斷c(x)

價值和 / 重量和》=x   

價值和 - 重量和*x>=0

和(價值-重量*x)>=0

可以對(價值-重量*x)的值進行貪心的選取,選取最大的m(m>=n-k)個 和》=0

#includeusing namespace std;

const double eps = 1e-8;

const int maxn = 1e6+5;

#define inf 1e9

int n,k;

int w[maxn],v[maxn];

double y[maxn];

bool check(double x)

return sum>=0;

}void solve()

printf("%.8f\n",r);

}int main()

solve();

}return 0;

}

01分數規劃牛客網 入門題

題意 給你兩個陣列,s i c i 再給你乙個式子時累加求和的相比求最大值的式子,同時你最多可以再其中刪去 k 個字母,問最終最大收益是多少?思路分析 經典的 01分數規劃問題,最優的結果一定是去掉越多的值越優,想一想就知道為什麼了 示例 include using namespace std de...

牛客網多校5 A gpa

輸入 第一行n,k 第二行n個s i 第三行n個c i 最多剪掉k個數使 答案用二分找,做題時想到過,但沒有仔細去想。假設max已知 s i c i s i c i max s i s i 即 s i c i ma x s i c i max 0,只需要每次按 c i max 排序,從k 1開始加到...

牛客網多校5 I vcd (樹狀陣列)

題目 有 n 個點,乙個點集 s 是好的,當且僅當對於他的每個子集 t,存在乙個右邊無限長的矩形,使得這個矩形包含了 t,但是和 s t 沒有交求這 n 個點裡有幾個好的點集 1 n 10 5 思路 對於 s 1,他顯然是好的 對於 s 2,只要兩個點的 y 座標不相同,那麼這個集合也是好的 對於 ...