POJ 2485.Highways

来源:互联网 发布:wps表格怎么匹配数据 编辑:程序博客网 时间:2024/05/28 05:14

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

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 505using 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;            }        }        if(tmp>ans)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(){int t;cin>>t;for(int tt = 0; tt < t; tt++){cin>>n;for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){scanf("%d",&map[i][j]);}}cout<<Prim()<<endl;}}

总结: 水题, 完全图求最小生成树.