#include<bits/stdc++.h>
using namespace std;
#define dd long double
namespace acac
{
int n;
int read()
{
int ans=0,fs=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')fs*=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
ans=ans*10+ch-'0';
ch=getchar();
}
return ans;
}
struct node
{
dd x,y,w;
}A[1010];
const dd alp=0.997;
dd calc(dd x,dd y)
{
dd res=0;
for(int i=1;i<=n;i++)
{
dd dx=x-A[i].x,dy=y-A[i].y;
res+=sqrt(dx*dx+dy*dy)*A[i].w;
}
return res;
}
dd nx,ny,nw;
dd ans,ax,ay;
void sa()
{
dd t=1000000;
ans=nw,ax=nx,ay=ny;
while(t>1e-15)
{
dd ex=nx+t*(rand()*2-RAND_MAX),ey=ny+t*(rand()*2-RAND_MAX);
dd ew=calc(ex,ey),da=nw-ew;
if(ew<ans)ans=nw,ay=ey,ax=ex;
if(nw>ew||exp(da/t)*(dd)RAND_MAX>(dd)rand())nw=ew,nx=ex,ny=ey;
t*=alp;
}
}
int main()
{
srand(22101);
n=read();
for(int i=1;i<=n;i++)
{
A[i].x=read();
A[i].y=read();
A[i].w=read();
nx+=A[i].x,ny=A[i].y;
}
nx/=1.0*n;
ny/=1.0*n;
nw=calc(nx,ny);
for(int i=1;i<=4;i++)
{
sa();
}
printf("%0.3Lf %0.3Lf",ax,ay);
return 0;
}
}
int main()
{
acac::main();
return 0;
}
只有第1个点对,是参数问题还是代码错了