POJ 1258 Agri-Net

来源:互联网 发布:gps数据采集过程 编辑:程序博客网 时间:2024/04/30 07:46

poj.org/problem?id=1258

Prim求解MST水题!

AC代码:

#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int MAX = 110;const int INF = 0x3f3f3f3f;int n,ans,G[MAX][MAX];int vis[MAX],dis[MAX];void Prim(){memset(vis, 0, sizeof(vis));memset(dis, 0x3f, sizeof(dis));dis[1] = 0,ans = 0;for(int i=1; i<=n; i++){int tmp = INF, id = -1;for(int j=1; j<=n; j++){if(vis[j]) continue;if(tmp > dis[j]){tmp = dis[j];id = j;}}if(tmp == INF) break;vis[id] = 1;ans += dis[id];for(int j=1; j<=n; j++){if(vis[j]) continue;if(dis[j] > G[id][j])dis[j] = G[id][j];}}return;}int main(){while(scanf("%d",&n) == 1){for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)scanf("%d",&G[i][j]);Prim();printf("%d\n",ans);}return 0;}


0 0