您的位置:首页 > 其它

POJ 1258 Agri-Net //Prim算法

2015-07-15 20:50 295 查看

题目描述

POJ1258

解题思路

给出村庄的邻接矩阵,求其MST.

Prim算法的模板题.

参考代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#define inf 0x3f3f3f3f
#define MAX_V 110
using namespace std;
int cost[MAX_V+1][MAX_V+1];
int mincost[MAX_V+1];
bool used[MAX_V+1];
int V;
int prim(){
memset(mincost,inf,sizeof(mincost));
memset(used,false,sizeof(used));
mincost[0] = 0;
int res = 0;
while (true){
int v = -1;
for (int u = 0;u < V;++u){
if (!used[u] && (v == -1 || mincost[u] < mincost[v]))
v = u;
}
if (v == -1) break;
used[v] = true;
res += mincost[v];
for (int u = 0;u < V;++u)
mincost[u] = min(mincost[u],cost[v][u]);
}
return res;
}
int main()
{
while (~scanf("%d",&V)){
for (int i = 0;i < V;++i)
for (int j = 0;j < V;++j)
scanf("%d",&cost[i][j]);
printf("%d\n",prim());
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: