Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## RE怎么解决，求高手

Posted by 20142014 at 2015-08-21 19:31:16 on Problem 2031
```//我的总是RE有哪位能帮我看看近段时间做这类题贡献了无数RE

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<cmath>
#define inf 0x3fffffff
using namespace std;
double map[105][105];
typedef struct Node{
double x,y,z;
double r;
}node;
node no[105];
double prim(int n)
{
int visit[30]={0};
double dis[30];
double sum,min;
int i,j,k;
sum=0;
for(i=1;i<=n;++i)
dis[i]=map[1][i];
visit[1]=1;
for(i=2;i<=n;++i)
{
min=inf;
k=1;
for(j=1;j<=n;++j)
{
if(!visit[j]&&min>dis[j])
{
min=dis[j];
k=j;
}
}
visit[k]=1;
if(min!=inf)
sum+=min;
for(j=1;j<=n;++j)
{
if(!visit[j]&&dis[j]>map[k][j])
dis[j]=map[k][j];
}
}

return sum;
}

int main()
{
int n,len,k,i,j;

while(scanf("%d",&n),n)
{
memset(map,inf,sizeof(map));
for(int i=1;i<=n;i++)map[i][i]=0;
for(i=1;i<=n;++i)
{
double x,y,z;double r;
scanf("%lf%lf%lf%lf",&no[i].x,&no[i].y,&no[i].z,&no[i].r);
}
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++){

double d;
node a=no[i],b=no[j];
d=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
if(d > no[i].r + no[j].r)
{
map[i][j] = map[j][i] = d - no[i].r - no[j].r;
}
else
{
map[i][j] = map[j][i] = 0;
}

}

}
return 0;
}

```

Followed by: