竟然会想去用随机艹这道题。。。太年轻
实际上两个点与坐标列一个方程,高斯消元解这n个方程组就好了。
讲道理随机也可以过的吧?
主要是不好找一个单调的状态来退火或者爬山
因为超出圆范围外无限远处到所有点距离也相等,但并不是圆心。
大概可以先用到所有点距离和来爬一下山,最终点就肯定在圆里,在小步小步的爬山,强制使自己陷入这个局部最优解。
也许可行?
高斯代码:
#include#define MAXN 12#define INF 100000000#define eps 1e-9using namespace std;int n;double x[MAXN][MAXN],gs[MAXN][MAXN];inline double _pow(double a) { return a*a;};inline double _abs(double a) { return a>0?a:-a;}int main() { scanf("%d",&n);n++; for(int i=1;i<=n;i++) for(int j=1;j eps) {pos=j;break;} swap(gs[pos],gs[i]); for(int j=1;j eps&&j!=i) { double p=(-gs[j][i])/gs[i][i]; for(int k=0;k