電網建造造價 最小生成樹問題(prime演算法)

2021-08-18 21:46:52 字數 745 閱讀 2274

對原本的prime演算法進行了改進,原本的演算法好像只能輸入生成的最小生成樹的路徑長度(權值和),為了滿足題目要求,新建了乙個結構體用來儲存尋找最短距離過程中更新過的最短距離,並在樹的生成過程中儲存結構體陣列中的資料。(方法不太巧妙,但總算是滿足了要求)詳細過程已注釋。

#include#include#includeusing namespace std;

struct link

bian[1000];

struct link2

bian2[1000];

link li[100];

const int maxv=1000;

const int inf=10000000;

int n,m,g[maxv][maxv];

int d[maxv];

bool vis[maxv]=;

int num=0;

int prime(int &num)//&引用,在函式內改變全域性變數的值

int ans=prime(num);

cout<<"輸出邊集陣列中的每條邊"

cout<<"輸出按公升序排列的圖的邊集陣列:"

return 0;

}

最小生成樹問題

1.構造可以使n個城市連線的最小生成樹。問題描述 給定乙個地區的n個城市間的距離網,用prim演算法或kruskal演算法建立最小生成樹,並計算得到的最小生成樹的代價。4 要求 1 城市間的距離網採用鄰接矩陣表示,鄰接矩陣的儲存結構定義採用課本中給出的定義,若兩個城市之間不存在道路,則將相應邊的權值...

最小生成樹問題

最小生成樹 是一棵樹 無迴路 個頂點一定有 條邊 包含全部頂點 條邊都在圖里 邊的權重和最小 生成約束 只能用圖里有的邊 只能正好用掉 條邊 不能有迴路 主要演算法 prim演算法 讓樹長大 int prim int n int ans 0 距離權值總和 vis 1 true 生成樹的根 起點 標記...

最小生成樹問題

最小生成樹 乙個有n個點的圖,邊一定是大於等於n 1條的。圖的最小生成樹,就是在這些邊中選擇n 1條出來,連線所有的n個點。這n 1條邊的邊權之和是所有方案中最小的。最小生成樹用來解決什麼問題?就是用來解決如何用最小的 代價 用n 1條邊連線n個點的問題。例題 洛谷p3366 乾坤大挪移 最小生成樹...