标签:
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 13628 | Accepted: 5632 |
Description
Input
Output
Sample Input
5 8 1 2 3 1 3 7 2 3 10 2 4 4 2 5 8 3 4 6 3 5 2 4 5 17
Sample Output
42
Hint
Source
#include <iostream>
#include <cstdio>
using namespace std;
const int INF=0x3f3f3f3f;
int a[1005][1005];
int dis[1005];
bool vis[1005];
int n,m;
void Prime()
{
for(int i=1;i<=n;i++)
{
vis[i]=false;
dis[i]=a[1][i];
}
dis[1]=0;
vis[1]=true;
int ans=0;
for(int i=2;i<=n;i++)
{
int minn=0;
int p=-1;
for(int j=1;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=1;j<=n;j++)
{
if(!vis[j]&&dis[j]<a[p][j])//
dis[j]=a[p][j];
}
}
cout<<ans<<endl;
}
int main()
{
//freopen("data/2377.txt","r",stdin);
while(cin>>n>>m)
{
//初始化
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
a[i][j]=0;
}
int x,y,z;
while(m--)
{
scanf("%d%d%d",&x,&y,&z);
if(z>a[x][y])
a[x][y]=a[y][x]=z;
}
Prime();
}
return 0;
}
POJ 2377 Bad Cowtractors【最大生成树,Prime算法】
标签:
原文地址:http://blog.csdn.net/hurmishine/article/details/52192763