uva10034 - Freckles
2012-11-17 00:43
302 查看
给出点的坐标,求出将所有的点连起来的最小长度。
#include<stdio.h>
#include<math.h>
struct node
{
double x,y;
}p[101];
double map[101][101],a[101];
int vis[101],n;
void prim()
{
int i,j,min_f;
double min,sum=0.0;
for(i=0; i<n; i++)
{
a[i]=map[0][i];
vis[i]=0;
}
vis[0]=1;
for(i=1; i<n; i++)
{
min=100000000.0;
min_f=0;
for(j=0; j<n; j++)
{
if(!vis[j]&&min>a[j])
{
min=a[j];
min_f=j;
}
}
vis[min_f]=1;
sum=a[min_f]+sum;
for(j=0; j<n; j++)
{
if(!vis[j]&&map[min_f][j]<a[j])
a[j]=map[min_f][j];
}
}
printf("%.2f\n",sum);
}
int main()
{
int i,j,m;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
map[i][i]=0;
int x,y;
scanf("%lf%lf",&p[i].x,&p[i].y);
for(j=0;j<i;j++)
{
map[i][j]=map[j][i]=sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y));
}
}
prim();
if(m)printf("\n");
}
return 0;
}
#include<stdio.h>
#include<math.h>
struct node
{
double x,y;
}p[101];
double map[101][101],a[101];
int vis[101],n;
void prim()
{
int i,j,min_f;
double min,sum=0.0;
for(i=0; i<n; i++)
{
a[i]=map[0][i];
vis[i]=0;
}
vis[0]=1;
for(i=1; i<n; i++)
{
min=100000000.0;
min_f=0;
for(j=0; j<n; j++)
{
if(!vis[j]&&min>a[j])
{
min=a[j];
min_f=j;
}
}
vis[min_f]=1;
sum=a[min_f]+sum;
for(j=0; j<n; j++)
{
if(!vis[j]&&map[min_f][j]<a[j])
a[j]=map[min_f][j];
}
}
printf("%.2f\n",sum);
}
int main()
{
int i,j,m;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
map[i][i]=0;
int x,y;
scanf("%lf%lf",&p[i].x,&p[i].y);
for(j=0;j<i;j++)
{
map[i][j]=map[j][i]=sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y));
}
}
prim();
if(m)printf("\n");
}
return 0;
}
相关文章推荐
- UVA - 10034 Freckles
- UVA 10034 Freckles
- UVa 10034 Freckles (MST & 稠密图的O(V^2)的Prim算法)
- uva 10034 Problem A: Freckles
- UVA 10034 - Freckles
- uva 10034【Freckles】
- uva 10034 Freckles 最小生成树
- uva 10034 Freckles(最小生成树Kruskal)
- uva 10034 Freckles
- uva 10034 Freckles (kruskal||prim)
- Uva 10034 - Freckles
- UVa 10034 Freckles
- UVA 10034 - Freckles
- Uva10034(Freckles)
- UVA 10034 Freckles 最小生成树
- UVa 10034 Freckles
- UVa 10034 Freckles (最小生成树+kruskal)
- Freckles - UVa 10034 最小生成树
- UVA - 10034 Freckles (kruskal算法)
- UVa 10034 Freckles