POJ2976 0 1分數規劃

2021-07-26 06:57:13 字數 1103 閱讀 8301

#include 

#include

#include

#include

using

namespace

std;

const

int maxn = 1000 + 5;

const

double eps = 1e-7;

struct node

} n[maxn];

bool cmp(node u, node v)

int n, k;

bool g(double r)

sort(n, n + n, cmp);

// for (int i = 0; i < n; i++)

// // printf("\n");

// for (int i = 0; i < n - k; i++)

// double res = 0;

for (int i = 0; i < n - k; i++)

//printf("\n");

//printf("% lf !\n", res);

if (res >= eps) return

true;

return

false;

}int main()

for (int i = 0; i < n; i++)

for (int i = 0; i < n; i++)

double l = 0, r = 1, mid;

while ((r - l) >= eps)

// double ans = fabs(mid * 100);

// printf("%f\n", ans);

printf("%.0f\n", fabs(mid * 100));

//printf("%d\n", (int)round(fabs(l * 100)));

}}

水題。。。然而我還是調了一下午+一晚上qnq

知道了0-1分數規劃之後就寫個二分就行了,並不難。

需要注意的就是精度問題和需不需要絕對值。精度最後設了1e-7,1e-4就不對,絕對值要認真考慮一下,看看到底需不需要。

POJ 2976 01分數規劃

剛做完了最優比率生成樹 就瞬間來了感覺了 題目大意就 給定n個二元組 a,b 扔掉k個二元組,使得剩下的a元素之和與b元素之和的比率最大 題目求的是 max a i x i b i x i 其中a,b都是一一對應的。x i 取0,1 並且 x i n k 那麼可以轉化一下。令r a i x i b ...

POJ 2976 01分數規劃基礎題目

題意 給你一組 數 一共n個,每個數有兩個權值,價錢a i 代價b i 讓你選擇n k使得 sigma a i sigma b i 100 最大 思路 毫無疑問這個是01分數規劃的最進本形式,唯一的限制就是取個數,那麼我們直接sort以下,取出來就行了。沒啥解釋的,這個是自己的第乙個01分數規劃,一...

POJ 3621 01分數規劃

題意 給出乙個有向圖,問求乙個迴路,使得回路上的點權之和 邊權之和最大。題解 01分數規劃,簡單構造,將點權轉移到邊權上 因為乙個環上的點和邊的數量是相等的 設i,j之間初始邊權為w i j 修改後的邊權為g i j 則g i j w i j mid val i spfa判負環即可 01分數規劃詳見...