POJ 2728 最小比例生成樹

2022-06-01 08:09:11 字數 871 閱讀 5251

傳送門

有n個村莊,每個村莊都有乙個(x, y)座標和z海拔,定義兩個村莊間的dist為座標的距離,cost為海拔差的絕對值,求圖的一顆生成樹,使得\(\frac\)最小。

最小比例生成樹的裸題。

看到\(\frac\)的分數形式,首先可以想到分數規劃:

設\(ans = \frac\)

則\(\sum cost - ans * \sum dist = 0\)

那麼可以二分答案ans,將邊的權值都變成\(cost - ans * dist\),並求最小生成樹:

#include#include#include#include#includeusing namespace std;

#define eps 1e-7

const double oo = 0x3f3f3f3f;

int n;

double ans, dist[1050][1050], len[1050][1050];

double x[1050], y[1050], z[1050], cost[1050][1050];

double minlen[1050];

bool used[1050];

inline double check(double mid)

minlen[1] = 0;

double ret = 0;

while(true)

return ret;

}int main()

} double l = 0, r = 1e6;

for(int i = 1; i <= 50; i++)

printf("%.3f\n", (l + r) / 2);

}}

POJ 2728 最優比例生成樹

有帶權圖g,對於圖中每條邊e i 都有benifit i 收入 和cost i 花費 我們要求的是一棵生成樹t,它使得 benifit i cost i i t 最大 或最小 設x i 等於1或0,表示邊e i 是否屬於生成樹.則我們所求的比率 r benifit i x i cost i x i ...

poj2728 最優比率生成樹

這個題的意思是給你乙個連通圖,圖上每個點都有連個權值ai,bi讓你選乙個生成樹使得sigma ai xi sigma bi xi 最小,對比與基礎的01規劃,我們假設答案是mid,然後建立乙個圖,其新的邊的權值是ai mid bi,然後求解最小生成樹,假設其答案是tp,如果tp 0,說明還有更優的解...

poj 2728 最優比率生成樹

思路 設sum cost i sum dis i r 那麼要使r最小,也就是minsum cost i r dis i 那麼就以cost i r dis i 為邊權重新建邊。當求和使得最小生成樹的 sum cost i r dis i 0時,這個r就是最優的。這個證明是01分數規劃。include ...