标签:
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 52097 | Accepted: 21722 |
Description
Input
Output
Sample Input
4 0 4 9 21 4 0 8 17 9 8 0 16 21 17 16 0
Sample Output
28
Source
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int INF=0x3f3f3f3f;
int a[105][105];
int dis[105];
bool vis[105];
int n;
void Prime()
{
for(int i=0; i<n; i++)
{
vis[i]=false;
dis[i]=a[0][i];
}
vis[0]=true;
int ans=0;
for(int i=1; i<n; i++)
{
int p=-1;
int minn=INF;
for(int j=0; j<n; j++)
{
if(!vis[j]&&dis[j]<minn)
minn=dis[p=j];
}
if(p==-1)
{
cout<<-1<<endl;
return;
}
vis[p]=true;
ans+=minn;
for(int j=0; j<n; j++)
{
if(!vis[j]&&dis[j]>a[p][j])//SX了。。。
dis[j]=a[p][j];
}
}
cout<<ans<<endl;
}
int main()
{
//freopen("data/1258.txt","r",stdin);
while(cin>>n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
scanf("%d",&a[i][j]);
}
Prime();
}
return 0;
}
POJ 1258 Agri-Net 【MST,Prime算法】
标签:
原文地址:http://blog.csdn.net/hurmishine/article/details/52192329