模拟退火
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
洛谷 P5544 [JSOI2016]炸弹攻击1 模拟退火
https://www.luogu.com.cn/problem/P5544 这题模拟退火模板题,从求最小值变成了求最大值,题解都是把接受差解的概率去掉?我吐了 之后看看求最大值有没有什么接 #include<bits/stdc++.h> using namespace std; const int maxl=1e3+10; const int rndmx=100000; const double eps=1e-15; mt19937 rnd(time(0)); uniform_in原创 2020-08-05 22:32:53 · 552 阅读 · 0 评论 -
A-Social Distancing 模拟退火 2020牛客暑期多校训练营(第七场)
https://ac.nowcoder.com/acm/contest/5672/A 可以很简单的理解如果n%2==0,答案就是n*n*r*r,因为由(n-1)多拿一个点时放在最左边和最右边恰好少1,补齐这个1就直接多赚,通过r较小时候的暴力搜索也可以发现这一规律,然而当左边右边恰好相等,再由n-1转移到n时,就不太行 从知乎网友那里学习了一下tot个点中选n个数的这个选择子集合的模拟退火写法,他的代码只考虑了x=-r,r上的边界点,没有考虑y=-r,r时极值边界点,所以他还结合了他队友遗传算法的答案原创 2020-08-04 11:03:43 · 373 阅读 · 0 评论 -
UVA10228 A Star not a Tree?
https://vjudge.net/problem/UVA-10228 模拟退火平面坐标系中的板题 注意使用rand()而不是mt19937 rnd(),因为rand()范围比较小,比较适合做这种坐标范围比较小的题,用mt19937*当前温度T加进x和y中就会变化非常大,很难得到最优解,rand()在windows中范围是32767,非常合适 模拟退火过不去的时候,可以增大初始温度,增大delta的值,增加模拟退火次数,减小停止温度等方法 这调参也太玄学了 #include<bits/s原创 2020-08-02 20:47:35 · 180 阅读 · 0 评论