求助,测试点在我的电脑上是正确的,为什么提交后就WA了?
查看原帖
求助,测试点在我的电脑上是正确的,为什么提交后就WA了?
593725
riuhi楼主2022/8/10 16:05
#include<bits/stdc++.h>
using namespace std;
int n,d;
double maxt=1e18,x[155],y[155],a[155],t;
double f[155][155];
double suan(int i,int j)
{
	return sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	 cin>>x[i]>>y[i];
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++)
	 {
	 	scanf("%1d",&d);
	 	if(d==1)f[i][j]=suan(i,j);
	 	else f[i][j]=1e12;
	 }
	for(int k=1;k<=n;k++)
	 for(int i=1;i<=n;i++)
	  for(int j=1;j<=n;j++)
	   if(i!=j&&j!=k&&k!=i)
	    f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
	memset(a,0,sizeof(a));
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++)
	  if(f[i][j]<1e12)a[i]=max(a[i],f[i][j]);
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++)
	  if(i!=j&&f[i][j]==1e12)
	  {
	  	t=suan(i,j);
	  	maxt=min(maxt,a[i]+a[j]+t);
	  }
	printf("%.6lf",maxt);
	return 0;
}
2022/8/10 16:05
加载中...