这代码。。。【求助】
  • 板块学术版
  • 楼主TsH_GD
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/2/14 08:32
  • 上次更新2023/10/28 08:35:52
查看原帖
这代码。。。【求助】
559502
TsH_GD楼主2022/2/14 08:32

自己运行可以,放测评就编译错误。

请问是哪里出了问题?

#include<bits/stdc++.h>
#define N 101
using namespace std;
int n,m,x,y;
int start,end;
double d[N][N];
int a[N][N];

inline int read(){
	register int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
	return x*f;
}

inline double juli(int x1,int x2,int y1,int y2){
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

inline void init(){
	n=read();
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i==j){
				d[i][j]=0;
			}
			else{
				d[i][j]=0x3f;
			}
		}
	}	
	for(int i=1;i<=n;i++){
		a[i][1]=read();
		a[i][2]=read();
	}
	m=read();
	for(int i=1;i<=n;i++){
		x=read();y=read();
		d[x][y]=d[y][x]=juli(a[x][1],a[y][1],a[x][2],a[y][2]);
	}
	start=read();
	end=read();
}

inline void floyed(){
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(d[i][k]+d[k][j]<d[i][j])
				{
					d[i][j]=d[i][k]+d[k][j];
				}
			}
		}
	}
}

inline void print(){
	printf("%.2lf",d[start][end]);
}

int main(){
	init();
	floyed();
	print();
}
2022/2/14 08:32
加载中...