最小生成樹模板題 P1692

2022-08-19 00:03:10 字數 887 閱讀 6487

給出n個頂點、e條邊的連通無向簡單圖,請你完成下列任務:

任務1、求邊權和最小的生成樹(最小生成樹)

任務2、求邊權和最大的生成樹(最大生成樹)

任務3、求最大邊最小的生成樹(瓶頸生成樹)

任務4、求最小邊最大的生成樹(瓶頸生成樹)

第一行:兩個整數n,e(n<=50000,e<=100000),分別表示有n個新島,e對能直接用電纜連線的島嶼,其中主島為1。接下來m行:每行三個數u,v,w,1<=u,v<=n,表示島嶼u和v之間可以直接用電纜連線,距離為w(<=100000)。

第一行乙個整數,表示最小生成樹的邊權和;第二行乙個整數,表示最大生成樹的邊權和;第三行乙個整數,表示最大邊最小的生成樹中,最大邊的權值;第四行乙個整數,表示最小邊最大的生成樹中,最小邊的權值;

n<=50000,e<=100000

注意事項:

1.這個就像有向圖那麼存就可以了不然排序可能有邊排不到,不然用2*m應該也行吧。

2.迴圈注意=號。

3.並查集的union修改的是父親的值,如果只修改x,y的值父親的值就沒有被修改到。

4.應該是要用long long的只不過資料太弱了。

#include#include#include#include#include#define maxn 100005

#define inf 0x3f3f3f3f

using namespace std;

struct edge

}int main()

曼哈頓最小生成樹 模板題

曼哈頓最小生成樹 給定二維平面上的n個點,在兩點之間連邊的代價為其曼哈頓距離,求使所有點連通的最小代價。樸素的演算法可以用o n2 的prim,或者處理出所有邊做kruskal,但在這裡總邊數有o n2 條,所以kruskal的複雜度變成了o n2logn 結論 以乙個點為原點建立直角座標系,在每4...

最小生成樹模板

prim演算法理解可以參考部落格 prim演算法模板 int prime int v int i,j,sum 0,min,k sum是權重和 for i 1 i n i lowcost i 表明當前狀態下在u內距離v點 s中各點 距離的最小值,每個u中點s 中點 都計算 lowcost i map ...

最小生成樹 模板

const int maxn 1010 const int maxm 200020 struct edge edges maxm int father maxn int find int x int cmp edge a,edge b 將邊按權值排序 int kruskal int n,int m ...