社区讨论
这道题的题解怎么回事?
P5544[JSOI2016] 炸弹攻击1参与者 8已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @lodu7fal
- 此快照首次捕获于
- 2023/10/31 12:36 2 年前
- 此快照最后确认于
- 2023/11/07 02:36 2 年前
RT
这道题的几篇题解都说自己写的是模拟退火,但是在他们代码的关键部分几乎都是这么写的
CPP if(Delta > 0){
ans_now = now;
ans_best = max(ans_now, ans_best);
x_pla += delta_x;
y_pla += delta_y;
}
else if(exp((double) -Delta / T) * RAND_MAX < rand()){
x_pla += delta_x;
y_pla += delta_y;
ans_now = now;
}
可以发现当的时候就到了下一个if那里
也可以轻易得到这个显然的结论
这里就有问题了,为什么模拟退火的里面是的
首先放上的函数图像

可以发现当的时候,
那这样
CPPexp((double) -Delta / T) * RAND_MAX < rand()
肯定是不成立的吧
这样,那些题解写的应该是爬山而不是退火吧
回复
共 10 条回复,欢迎继续交流。
正在加载回复...