求助,莫名本地编译过不去
查看原帖
求助,莫名本地编译过不去
1098507
zdnzkzl楼主2024/5/14 07:56
#include <bits/stdc++.h>
using namespace std;
struct node{
	int x,y;
};

node a[150];
int n;
double ans;

double rand(double l,double r){
	return (double) rand()/RAND_MAX*(r-l)+l;
}

double dis(node d,node b){
	double dx=d.x-b.x;
	double dy=d.y-b.y;
	return sqrt(dx*dx+dy*dy);
}

double diszong(node p){
	double res=0;
	for(int i=0;i<n;++i){
		res+=dis(a[i],p);
	}
	ans=min(ans,res);
	return res;
}

void tui(){
	node b;
	b.x=rand(0,10000),b.y=rand(0,10000);
	for(double t=1e4;t>1e-4;t*=0.99){
		node ne;
		ne.x=rand(b.x-t,b.x+t);
		ne.y=rand(b.y-t,b.y+t);
		double dis=juzong(ne)-juzong(b);
		if(exp(-dis/t)>rand(0,1)) b=ne;
	}
}
int main(){
	int T;
	cin>>T;
	while(T--){
		cin>>n;
		for(int i=0;i<n;++i) cin>>a.x>>a.y;
		for(int i=1;i<=50;++i) tui();
		cout<<ans<<"\n";
	}
	return 0;
}

// https://oiercraft.top/#
2024/5/14 07:56
加载中...