rt,一开始我想物体合力为 0 时稳定,那么就不断退火到合力为 0 时输出答案即可。
但是样例一直过不去,合力一直都是 2.99853 左右 一直没法随到最优点(0)……
各种调参,时限开到 8s,仍然和答案差一大截……
看了下题解,换了个函数之后就可以过样例了
啊所以请问函数取合力大小时非常难随到答案呢?
代码:
#define db double
db calc(db x, db y) {
db dx = 0, dy = 0;
for(int i = 1; i <= n; i++) {
db dddx = p[i].x - x, dddy = p[i].y - y;
db r = sqrt(dddx * dddx + dddy * dddy);
dx += dddx / r * w[i], dy += dddy / r * w[i];
}
db res = sqrt(dx * dx + dy * dy);
if(ans > res) ans = res, ansx = x, ansy = y;
return res;
}
先去吃饭了,12:30 左右才能回来,不能立即回复,敬请谅解