如果你想模拟退火过掉这题
查看原帖
如果你想模拟退火过掉这题
529247
BLX32M_10楼主2024/8/21 16:33

避免逆天 50 组 hack 的方法:

  • 广搜求近似解的时候可以有概率选当前队列中的第二个;

  • 每次不要就修改一个点的信息,且修改数量最好与温度有关,本人调出来的是每次修改 rand⁡()mod  ⌈T×max⁡(1,n−3)⌉T0+1\operatorname{rand}\left(\right)\mod\frac{\lceil T\times\max\left(1,n-3\right)\rceil}{T_0}+1 个;

  • 盲目地拉高初温没用,我试出来的参数:初温 10810^8,eps 10−510^{-5},衰减系数 0.999610.99961(如果你的时间复杂度比较好的话可以更高),判定用 e−ΔTe^{-\frac{\Delta}{T}} 不用加绝对值;

  • 重要! 每次改变点的信息如果不加上限制的话一开始温度高的时候很难合法(即出现环、不连通等),因此应加边时判断是否是某点指向该点的后代的情况,如不是就不加。如果不判边是否合法,而改变完数据之后再判,那么会造成很大的时间和高温时间段的浪费。

2024/8/21 16:33
加载中...