#include #include #include #include #include #include using std::cout;
using std::endl;
using std::vector;
using std::string;
class solution
dis[0] = 0;
book[0] = true;//0號頂點擊中
int count = 1;//記錄已經找到了多少個頂點,初值為1,表示頂點0已經是找到的
int sum = 0;//記錄路徑和
while(count < n)
}book[minv] = true;
sum += minw;
for(int i = 1;i < n;++i)}}
++count;
}return sum;
}};vector> creatematrixfromcin()
//構造矩陣
vector> matrix(n,vector(n,int_max));
for(int i = 0 ;i < n;++i)
//讀邊資訊
for(int k = 0;k < m;++k)
matrix[e1-sid][e2-sid] = w;//sid是頂點編號是從0開始還是從1開始
matrix[e2-sid][e1-sid] = w;//無向圖,所以兩個方向都要儲存
} return matrix;
}void test()
int main()
//輸入資料1
//頂點編號從0開始
#if 0
6 10
0 1 4
0 4 1
0 5 2
1 2 6
1 5 3
2 3 6
2 5 5
3 4 4
3 5 5
4 5 3
#endif
//輸入結果應為:15
//輸入資料2
//頂點編號從1開始
#if 0
6 92 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
#endif
//輸出結果應為:19
最小生成樹 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
演算法模型 由任意乙個頂點開始 將此頂點存入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 ...
最小生成樹 PRIM
這個是有關普利姆的演算法,從乙個點出發,找出與這個點相連的所有點的對應的權值最小的那個,然後再把這個點從集合中劃掉。模板如下 include include define inf 0xfffff define max 2005 using namespace std int map max max ...