題目大意:題意:給點乙個無向圖,求乙個生成樹使樹中最大邊與最小邊的差的最小。
解題思路;首先按照邊權排一次序,然後依次列舉最小的邊權,利用kruskal演算法生成無根樹!!!(利用並查集維護集合關係)
#include
#include
#include
#include
#include
using namespace std;
const int maxn=1e4;
const int inf=(1<<30);
int p[maxn],n,m,u,v,d;
struct edge
bool operator < (const edge& rhs) const
};void make_set(int n)
int find_set(int x)
vectore;
int main()
sort(e.begin(),e.end());
int ans=inf;
for(int l=0;l}if(ans==inf) printf("-1\n");
else printf("%d\n",ans);
}return 0;
}
POJ3522 最小差值生成樹 LCT
題目描述 給定乙個標號為從 1 到 n的 有 m 條邊的無向圖,求邊權最大值與最小值的差值最小的生成樹。輸入格式 第一行兩個數 n,m,表示圖的點和邊的數量。第二行起 m 行,每行形如 ui,vi,wi,代表 ui到 vi 間有一條長為 wi 的無向邊。輸出格式 輸出一行乙個整數,代表你的答案。資料...
poj解題報告 1328
不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...
poj解題報告 2586
這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...