您的位置:首页 > 其它

Networking---poj1287最小生成树

2015-07-27 09:58 253 查看
http://poj.org/problem?id=1287

最小生成树模板题类似的还有:poj1258 hdu1233代码几乎一样;

最小生成树详解

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<map>
#define N 110
#define INF 0xfffffff
using namespace std;

int n, f
, m;

struct node
{
int x, y, d;
}a[N*N];

int cmp(node p, node q)
{
return p.d < q.d;
}

int Find(int x)
{
if(x != f[x])
f[x] = Find(f[x]);
return f[x];
}

int main()
{
int ans, px, py;
while(scanf("%d", &n),n)
{
ans=0;
for(int i=0; i<=n; i++)
f[i] = i;
scanf("%d", &m);
for(int i=0; i<m; i++)
{
scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].d);
}
sort(a, a+m, cmp);
for(int i=0; i<m; i++)
{
px = Find(a[i].x);
py = Find(a[i].y);
if(px != py)
{
f[px] = py;
ans+=a[i].d;
}
}
printf("%d\n", ans);
}
return 0;
}


Kruskal
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: