开long double!!!退火的题解里貌似没有几篇能在随机种子下稳定通过,但开了long double后正确率显著提高(我也是这么过的)
这是一个单峰函数(但是为什么单峰函数要用退火呢?),所以是不是与其多跑几次退火,不如用较小的温度多跑几次?就像这样:
double Rand(){return 1.0*rand()/RAND_MAX;}
for(t=0.009;t>=0.001;t-=0.001){
int maxt=(10-t*1000)*1e4;
for(int i=1;i<=maxt;i++)
update(ansx+t*(Rand()*2-1),ansy+t*(Rand()*2-1));
}