hdu 2122 (prime 最小生成树)

hdu 2122 (prime 最小生成树),第1张

点击打开链接

/*

手生了,WA了一次,

最后才发现用prime比dijk好多了。。。

2013-04-23

*/

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"algorithm"
#define inf 999999999
using namespace std;
int set[1001];
int find(int x)
{
	if(set[x]==x)return x;
	set[x]=find(set[x]);
	return set[x];
}
struct node
{
	int a,b,c;
}A[10001];
int cmp(node a,node b)
{
	return a.c<b.c;
}
int main()
{
	int n,m;
	int i,j;
	int x,y;
	while(scanf("%d%d",&n,&m)!=-1)
	{
		for(i=0;i<n;i++)
			set[i]=i;
		for(i=0;i<m;i++)
			scanf("%d%d%d",&A[i].a,&A[i].b,&A[i].c);
		sort(A,A+m,cmp);
		int ans,t;
		t=0;
		ans=0;
		for(i=0;i<m;i++)
		{
			x=find(A[i].a);
			y=find(A[i].b);
			if(x!=y)
			{
				t++;
				ans+=A[i].c;
				set[x]=y;
			}
		}
		if(t!=n-1)printf("impossible\n");
		else 
			printf("%d\n",ans);
		printf("\n");
	}
	return 0;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/2081817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-22
下一篇 2022-07-22

发表评论

登录后才能评论

评论列表(0条)

保存