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

哪位帮我看看代码,从昨天开始就一直WA...郁闷

Posted by sakuragrass at 2005-08-18 09:03:36
#include "math.h"
#include "iostream.h"
#include "stdio.h"
double d[2000][2000];
int main(){	
	double sita[2000],fai[2000],sum,min,dl;
	double x[2000],y[2000],z[2000];
	int n,i,j,flag;
	cin>>n;
	for(i=0;i<n;i++){
		cin>>sita[i]>>fai[i];
		x[i]=sin((90-sita[i])*3.1415927/180)*cos((180+fai[i])*3.1415927/180);
		y[i]=sin((90-sita[i])*3.1415927/180)*sin((180+fai[i])*3.1415927/180);
		z[i]=cos((90-sita[i])*3.1415927/180);
	}   //将经纬度变成球坐标后转为三维坐标
	for(i=0;i<n;i++){
		d[i][i]=0;
		for(j=i+1;j<n;j++){
			dl=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])+(z[i]-z[j])*(z[i]-z[j]));
			d[i][j]=asin(dl/2)*2;
			d[j][i]=d[i][j];
		}
	}  //计算两点弦长并转化为弧长
	min=1e10;
	for(i=0;i<n;i++){
		sum=0;
		for(j=0;j<n;j++)
			sum+=d[i][j]; //将从某点出发所到达的其他所有点的距离相加;
		if(min>sum){
			min=sum;
			flag=i;
		}		         //找求出最小的距离和并做标记
	}
	if(n!=0)printf("%.2lf %.2lf\n",sita[flag],fai[flag]);
	return 0;
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator