最小生成树prime算法模板
2014-08-16 11:10
239 查看
#include<stdio.h> #include<string.h> using namespace std; int map[505][505]; int v, e; int prime() { bool vis[505]; int dist[505]; int i,j,sum=0; for(i=1;i<=v;i++) { vis[i]=0; //先假设编号为1的点加入MST dist[i]=map[1][i]; } vis[1]=1; for(i=1;i<v;i++) { int k,min=0x3f3f3f3f; for(j=1;j<=v;j++) { if(!vis[j]&&dist[j]<min) { min=dist[j]; k=j; } } /* 在这也统计下加入了几天边,判断是否构成MST */ sum+=dist[k]; vis[k]=1; //下面更新已加入最小生成树的点离其它点的最短距离 for(j=1;j<=v;j++) { if(!vis[j]&&dist[j]>map[k][j]) dist[j]=map[k][j]; } } return sum; } int main() { int n; int i; int waibu; scanf("%d", &n); while(n--) { memset(map, 0, sizeof(map)); scanf("%d %d", &v, &e); int a, b, c; for(i = 0; i< e; i++) { scanf("%d %d %d", &a, &b, &c); map[a][b] = c; map[b][a] = c; } int min = 0x3f3f3f3f; for(i = 0; i< v; i++) { scanf("%d", &waibu); if(min > waibu) min = waibu; } printf("%d\n", prime() + min); } return 0; }
相关文章推荐
- prime算法(最小生成树模板)
- 最小生成树prime算法模板
- 最小生成树Prime算法(模板)
- 最小生成树之prime算法实现
- 最小生成树问题 普利姆算法简单模板 hdoj1233
- 最小生成树算法模板
- POJ3164 最小树形图 有向图的最小生成树 模板题 朱刘算法 朱永津-刘振宏算法
- 求图的最小生成树的prime算法和Kruskal算法
- 最小生成树算法[prime]
- hdu1102Constructing Roads(Prime 算法求最小生成树)
- 最小生成树算法(Prime、Kruskal)和最短路径算法(Dijkstra、Floyd)
- 求解最小生成树的算法 kruskal算法(附模板)
- 最小生成树 prime算法 归纳
- poj1258(最小生成树prime算法)
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- hdu1301 Jungle Roads(Prime算法求最小生成树)
- hdu 1879 最小生成树【prime算法】
- Prime的最小生成树算法
- 杭电1233 and 杭电1162————最小生成树(MST之prime算法)
- POJ-1251 Jungle Roads 最小生成树 两种算法的简单模板