最小生成樹 prim

2021-06-25 10:29:26 字數 613 閱讀 1935

演算法模型: 由任意乙個頂點開始  ,將此頂點存入s集, 剩餘頂點存入t集合

每次遍歷頂點, 取一條能夠連線s與t最短邊e,  直到所有頂點全部加入s

#include

#include

#define inf 1<<30 

int n,m,vis[110],low[110];

int map[110][110];

int init()

int prim()

if(pos==-1) return -1; // 代表這當前步驟缺少條件

int k = pos;

vis[k] = 1;

ans+=low[k];

for(int j = 1; j <= n; j++)

if(!vis[j]&&low[j]>map[k][j])//更新最小邊

low[j] = map[k][j];

}return ans;

}int main()

int p = prim();

if(p==-1)

puts("?");

else

printf("%d\n",p);

}return 0;

}

最小生成樹 Prim

include stdio.h include stdlib.h include io.h include math.h include time.h define ok 1 define error 0 define true 1 define false 0 define maxedge 20 ...

最小生成樹 PRIM

這個是有關普利姆的演算法,從乙個點出發,找出與這個點相連的所有點的對應的權值最小的那個,然後再把這個點從集合中劃掉。模板如下 include include define inf 0xfffff define max 2005 using namespace std int map max max ...

最小生成樹 prim

思想 mst minimum spanning tree,最小生成樹 問題有兩種通用的解法,prim演算法就是其中之一,它是從點的方面考慮構建一顆mst,大致思想是 設圖g頂點集合為u,首先任意選擇圖g中的一點作為起始點a,將該點加入集合v,再從集合u v中找到另一點b使得點b到v中任意一點的權值最...