POJ 1258.Agri-Net

来源:互联网 发布:keynote for mac 6.1 编辑:程序博客网 时间:2024/06/08 02:51

题目:http://poj.org/problem?id=1258

AC代码(C++):

#include <iostream>#include <algorithm>#include <stdio.h>#include <vector>#include <queue>#include <math.h>#include <string>#include <string.h>#include <bitset>#define INF 0xfffffff#define MAXN 105using namespace std;int n;int map[MAXN][MAXN];int dis[MAXN];bool vis[MAXN];int Prim(){    int ans = 0;    for(int i=0;i<n;i++)dis[i]=map[0][i];    memset(vis,false,sizeof(vis));    vis[0]=1;    for(int i=1;i<n;i++){        int next,tmp = INF;        for(int j=0;j<n;j++){            if(!vis[j]&&tmp>dis[j]){                tmp=dis[j];                next=j;            }        }        ans += tmp;        vis[next]=1;        for(int j=0;j<n;j++){            if(!vis[j]&&dis[j]>map[next][j])                dis[j]=map[next][j];        }    }    return ans;}int main(){while(cin>>n){for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){scanf("%d",&map[i][j]);}}cout<<Prim()<<endl;}}
总结: 水题.

原创粉丝点击