POJ 3522 Slim Span 最小生成樹

2021-07-04 22:10:42 字數 729 閱讀 3003

題意:給定乙個n個點m條邊的無向圖,找一顆苗條度(最大邊減最小邊)最小的生成樹。

思路:假設苗條度最小的這棵樹的最小邊為a,若要使苗條度最小,答案一定是以a為最小邊的一顆最小生成樹,所以可以考慮列舉最小邊,計算出苗條度並更新答案。

#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps 1e-6

#define ll long long

using namespace std;

const int maxn = 100 + 5;

const int maxm = 10000;

const int inf = 0x3f3f3f3f;

int n, m;

int u[maxm], v[maxm], w[maxm], p[maxn], r[maxm];

bool cmp(const int i, const int j)

int find_p(int x)

int kruscal(int edge_id)

if(cnt == n-1) return w[e]-w[r[edge_id]];

} return inf;

}int main()

return 0;

}

POJ3522 最小差值生成樹 LCT

題目描述 給定乙個標號為從 1 到 n的 有 m 條邊的無向圖,求邊權最大值與最小值的差值最小的生成樹。輸入格式 第一行兩個數 n,m,表示圖的點和邊的數量。第二行起 m 行,每行形如 ui,vi,wi,代表 ui到 vi 間有一條長為 wi 的無向邊。輸出格式 輸出一行乙個整數,代表你的答案。資料...

POJ 1258 最小生成樹

include include struct fiberfiber 10000 struct farmsfarms 100 void exchange struct fiber fiber,int i,int j int partition struct fiber fiber,int p,int ...

最小生成樹 poj 2485

include include include include include include define m 505 define im 505 505 2 using namespace std int r im int w im int u im int v im int p m int c...