POJ 2976 01分數規劃基礎題目

2021-06-22 04:25:56 字數 886 閱讀 2199

題意:

給你一組"數",一共n個,每個數有兩個權值,價錢a[i],代價b[i],讓你選擇n - k使得 sigma(a[i]) / sigma(b[i]) * 100 最大;

思路:

毫無疑問這個是01分數規劃的最進本形式,唯一的限制就是取個數,那麼我們直接sort以下,取出來就行了。沒啥解釋的,這個是自己的第乙個01分數規劃,一會要自己總結下01分數規劃的理解了,感覺不是很難,就是證明點東西。

自己總結的01分數規劃:

#include

#include

#define n 1000+10

#define inf 1000000000

#define eps 0.000001

using

namespace std;

bool

camp

(double a ,

double b)

double a[n]

,b[n]

,d[n];

boolok(

double l ,

int n ,

int k)

intmain

() ans *=

100;

printf

("%.0lf\n"

,ans);

}return0;

}

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 ...

POJ2976 0 1分數規劃

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...

poj 2976 基礎01分數規劃

這個題算是01分數規劃的最基本的應用了,01分數規劃是給你n對數 a1,b1 an,bn 然後讓你選擇一些數對,使得sigma ai sigma bi 最大。這裡附上講解乙份,如下 include include include include include using namespace std...