#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分數規劃詳見...