其实不用调参
  • 板块P3936 Coloring
  • 楼主Eliauk_FP
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/5/13 09:49
  • 上次更新2025/7/30 18:53:22
查看原帖
其实不用调参
809124
Eliauk_FP楼主2025/5/13 09:49

如果你模拟退火写的是交换两个点,不用调参就可过。当然,参数不能设的太离谱。

你只需要实现优秀一点,把交换后求答案改成 O(1)O(1) 的就行。像这样:

int tmp = ans;
tmp -= gt(x1, y1), tmp -= gt(x2, y2);
swap(a[x1][y1], a[x2][y2]);
tmp += gt(x1, y1), tmp += gt(x2, y2);

gt(x, y) 是统计一个格子贡献的函数。注意你随出来的两个格子 不能相邻

另外需要注意的是,你可以在模拟退火之后再跑爬山,跑 10001000 次就行,注意后面的爬山算法 不能接受更劣解

本人的参数设置:初始温度 T=10T=10,最低温度 t=1015t = {10}^{-15},降温系数 d=0.9999d = 0.9999

本人还加了卡时,卡时时限为 4.54.5 秒,但似乎有点过于保守了。

提交记录

2025/5/13 09:49
加载中...