啊哈演算法 鏢局運鏢(最小生成樹)

2022-06-23 13:39:07 字數 1150 閱讀 9693

最近小哼迷上了《龍門鏢局》,從恰克圖道武夷山,從張家口道老河口,從迪化道佛山,從蒙自道奉天......古代鏢局的運鏢,也就是現在的物流。鏢局每到乙個地方開展業務,都需要堆運鏢途中的綠林好漢進行打點(不給錢就不讓過路)。好說話的打點費就比較低,不好說話的打點費就比較高。城鎮類似如下,頂點是城鎮編號,邊上的值表示這條道路上打點綠林好漢需要的銀子數。

請你幫鏢局算算,如果從1號城鎮出發,遍歷每個城鎮最少需要準備多少打點銀子?
輸入第一行包括兩個正整數n,m。n代表城鎮個數,m表示道路個數(1 < n,m < 100)。

後面的m行分別包含三個正整數a,b,c,表示在從城鎮a 到 城鎮b的道路上需要交納的銀子數。

輸出從1號城鎮出發,遍歷每個城鎮最少需要準備的銀子數。

6 9

2 4 11

3 5 13

4 6 3

5 6 4

2 3 6

4 5 7

1 2 1

3 4 9

1 3 2

19

這是kruskal演算法

1 #include2 #include3

using

namespace

std;

4struct edge;

9int

n,m;

10int f[103

];11

int num=0,sum=0;//

num表示邊的數量,sum表示最小生成樹的總權

12int cmp(edge x,edge y)

15int getf(int x) 22}

23int merge(int x,int y)

30return0;

31}32int

main()

38for(int i=1;i<=n;i++)

41 sort(e+1,e+m+1,cmp);//

stl排序

42for(int i=1;i<=m;i++)

47if(num==n-1)50}

51 cout<52return0;

53 }

鏢局運鏢(最小生成樹 Kruskal)

7 11 鏢局運鏢 30 分 鏢局的運鏢,就是運貨 類似現在的物流 鏢局每到乙個新地方開展業務,都需要對運鏢途中的綠林好漢進行打點。好說話的打點費就比較低,不好說話的打點費就比較高。龍門鏢局現在有一趟鏢請你來規劃路線,已知城市的地圖,你需要選擇一些道路進行疏通,以便鏢局可以到達任意乙個城市,要求花費...

7 4 龍門鏢局(最小生成樹)

龍門鏢局專門負責為客人運送貨物,從恰克圖到武夷山,從張家口到老河口,從迪化到佛山,從蒙自到奉天,迤邐數千里的商道上,或車馬,或舟楫,或駝馱,或肩挑,貨物往來,錢財遞送。商號開在 鏢局便設在 鏢局每到乙個新地方開展業務,都需要對運鏢途中的綠林好漢進行打點。好說話的打點費就比較低,不好說話的打點費就比較...

最小生成樹演算法

由帶權的連通圖生成的數的各邊加起來稱為生成樹的權,把權值最小的生成樹稱為最小生成樹 minimum spanning tree 簡稱為mst 構造最小生成樹的方法就是利用mst性質,一條一條地選擇可以加入的邊。下面介紹兩種用於構造最小生成樹的演算法,其中第一種演算法稱為prim演算法,第二種演算法稱...