求助#5wa
查看原帖
求助#5wa
133116
Xhesika_Frost楼主2021/2/3 18:34
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int xx,yy,xxx,yyy,xxxx,yyyy,xxxxx,yyyyy;
int su[10001];
int n;
double dis[1001][1001];
struct ci{
	int x;
	int y;
	int id;
}city[40001];
int s,t,a,b;
double  f(int x){
	return (double)x*x;
}
int p;
void crea(int x,int y,int id){
	p++;
	city[p].x=x;
	city[p].y=y;
	city[p].id=id;
}
double cd(int x,int y){
	return sqrt((double)f(city[x].x-city[y].x)*1.0+1.0*f(city[x].y-city[y].y));
}
int mx,my;
void build(int id){
	crea(xx,yy,id);	crea(xxx,yyy,id);	crea(xxxx,yyyy,id);
	int ab=f(xx-xxx)+f(yy-yyy);
	int ac=f(xx-xxxx)+f(yy-yyyy);
	int bc=f(xxx-xxxx)+f(yyy-yyyy);
	if(ab==ac+bc) {
		
		mx=(xx+xxx)/2;
		my=(yy+yyy)/2;
		xxxxx=2*mx-xxxx;
		yyyyy=2*my-yyyy;
	}
	if(ac==ab+bc) {
		mx=(xx+xxxx)/2;
		my=(yy+yyyy)/2;
		xxxxx=2*mx-xxx;
		yyyyy=2*my-yyy;
	}
	if(bc==ab+ac) {
		mx=(xxx+xxxx)/2;
		my=(yyy+yyyy)/2;
		xxxxx=2*mx-xx;
		yyyyy=2*my-yy;
	}
	crea(xxxxx,yyyyy,id);
}
double co(int x,int y){
	if(city[x].id==city[y].id){
		return cd(x,y)*(double)su[city[x].id];
	}else{
		return cd(x,y)*(double)t;
	}
}
double Aimee;
int main(){
	scanf("%d",&n);
	while(n--){
		Aimee=2147483647;
		p=0;
		scanf("%d%d%d%d",&s,&t,&a,&b);
		for(int i=1;i<=s;++i){
			scanf("%d%d%d%d%d%d%d",&xx,&yy,&xxx,&yyy,&xxxx,&yyyy,&su[i]);
			build(i);
		}
	for(int i=1;i<=p;++i){
		for(int j=i;j<=p;++j){
			if(i==j)
			dis[i][j]=dis[j][i]=0.0;
			else
			dis[i][j]=dis[j][i]=co(i,j);
		}
	}
//	for(int i=1;i<=p;++i){
//		for(int j=1;j<=p;++j)
//			if(dis[i][j]==0)
//			return 0;
//	}
	for(int k=1;k<=p;++k){
		for(int i=1;i<=p;++i){
			for(int j=1;j<=p;++j){
				if(dis[i][k]+dis[k][j]<=dis[i][j]){
					dis[i][j]=dis[i][k]+dis[k][j];
			//		cout<<dis[i][j]<<endl;
				}
			}
		}
	}
	for(int i=a*4-3;i<=a*4;++i){
		for(int j=b*4-3;j<=b*4;++j){
			cout<<dis[i][j]<<endl;
			Aimee=min(Aimee,dis[i][j]);
	//		if(dis[i][j]==0){
	//			cout<<i<<" "<<j;
	//			cin>>Aimee;
	//		}
		}
	}
	printf("%.1lf\n",Aimee);
	}
	return 0;
}
2021/2/3 18:34
加载中...