标签:
3 1.0 1.0 2.0 2.0 2.0 4.0
最小生产树,裸题—----------.---------------
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
double lowcost[11111];
double map[111][111];
const double inf=99999999;
int vis[111];
struct node
{
double x;
double y;
}a[11111];
double fun(node x,node y)
{
return sqrt((x.x-y.x)*(x.x-y.x)+(x.y-y.y)*(x.y-y.y));
}
int main()
{
int n,i,j,k;
double sum,temp,max;
while(scanf("%d",&n)!=EOF){
for(i=1;i<=n;i++) {
scanf("%lf%lf",&a[i].x,&a[i].y);
vis[i]=0;
}
for(i=1;i<=n;i++) {
for(j=i+1;j<=n;j++){
map[i][j]=map[j][i]=fun(a[i],a[j]);
}
}
vis[1]=1;
sum=0;
for(i=1;i<=n;i++) lowcost[i]=map[1][i];
for(i=1;i<=n;i++) {
temp=inf;
for(j=1;j<=n;j++) {
if(!vis[j] && lowcost[j]<temp) {
k=j;
temp=lowcost[j];
}
}
if(temp==inf) break;
vis[k]=1;
sum+=temp;
for(j=1;j<=n;j++) {
if(!vis[j] && lowcost[j]>map[k][j]) lowcost[j]=map[k][j];
}
}
printf("%0.2lf\n",sum);
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
HDU 1162 Eddy's picture (prime算法_裸题)
标签:
原文地址:http://blog.csdn.net/h1021456873/article/details/47727265