USACO:Agri-Net

/*
ID: Jang Lawrence
PROG: agrinet
LANG: C++
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<algorithm>
#include<queue>
#include<cmath>
#define X first
#define Y second
#define sqr(a) ((a)*(a))
using namespace std;
typedef long long lng;
int n;
int a[111][111];
  int dis[111];
int prim()
{
    int sum=0;
    bool vis[111]={};
    dis[0]=0;
    for(int i=1;i<n;++i)
    dis[i]=1000000000;
    for(int i=0;i<n;++i)
    {
        int mi=100000000,id;
        for(int j=0;j<n;++j)
        if(!vis[j]&&mi>dis[j]) mi=dis[id=j];
        sum+=mi;
        vis[id]=1;
        for(int j=0;j<n;++j)
        if(!vis[j]&&dis[j]>a[id][j]) dis[j]=a[id][j];
    }
    return sum;
    return sum;
}
int main()
{
  #ifndef  DEBUG
  freopen("agrinet.in","r",stdin);
  freopen("agrinet.out","w",stdout);
  #endif
  scanf("%d",&n);
  for(int i=0;i<n;++i)
  for(int j=0;j<n;++j)
  scanf("%d",&a[i][j]);
  printf("%d\n",prim());

    return 0;
}

你可能感兴趣的:(USACO:Agri-Net)