每次把元素随便扔随机一个初始解,退火时每次随机拿一个元素扔到随机一个集合里,当温度高时因为状态不稳定扔到那个元素和最小的里边. 如果新解优,更新ans. 把原式拆一下,就可以用int存了. bzoj 2428 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define N 55 using namespace s…
2428: [HAOI2006]均分数据 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=2428 Description 已知N个正整数:A1.A2.…….An .今要将它们分成M组,使得各组数据的数值和最平均,即各组的均方差最小.均方差公式如下: ,其中σ为均方差,是各组数据和的平均值,xi为第i组数据的数值和. Input 第一行是两个整数,表示N,M…
题目链接 模拟退火: 模拟退火!每次随机一个位置加给sum[]最小的组. 参数真特么玄学啊..气的不想调了(其实就是想刷刷最优解) 如果用DP去算好像更准.. //832kb 428ms #include <cmath> #include <cstdio> #include <cctype> #include <cstring> #include <assert.h> #include <algorithm> #define gc()…
#include<cstdio> #include<iostream> #include<cstdlib> #include<ctime> #include<cstring> #include<cmath> #include<algorithm> #define M 100 using namespace std; int n,m,a[M],pos[M]; double rev,sum[M],ans,mn=1e30,pre…
题目:https://www.luogu.org/problemnew/show/P1337 https://www.lydsy.com/JudgeOnline/problem.php?id=3680 模拟退火!其实就是随机移动产生解,而且幅度越来越小,以一定的概率接受不优的解: 设置一个“初温”,每次变小,作为移动的幅度和判断的系数之一: exp 是以 e 为底的幂,这个判断依据似乎是个公式: 然后过程中保留一个最优解作为最后的答案: 洛谷那道题 n <= 1000,所以 eps 设了 1e-…
模拟退火.一种十分玄学的随机算法,网上可以查到比较详细的资料. 先随机地把数分成m组,每次随机地选择一个数,一开始直接选最小的一组,后来就随机一组,把这个数换到该组看看答案能不能变小,如果变小则换,如果没有变小,按模拟退火的玄学方式判断一下,也要交换. srand(time(0))在bzoj会RE,不知为何. 非常玄学的正确性,没拍多少数据就会出现差别,然而OJ上可以过的. //Twenty #include<cstdio> #include<cstdlib> #include&l…
第一道模拟退火 重心嘛,就是要找到一个点,使其到所有点距离*该点权值和最小 思路:初始化一个T,mint,当T大于mint时,每次随机一个解,如果解比当前解优,直接转移,否则,以某概率(与T正相关)转移,并不断降温,最后向四周爬山 感觉思路比较清晰,但好多细节不太明白,比如初始化的T,mint,以及退火的速度,前后改了几十遍吧.还是要多做题,找感觉...... #include<cstdio> #include<cstring> #include<iostream> #…
题目链接 一个比较好的解释? 模拟退火(Simulated Annealing,SA): (1)初始化一个温度(充分大).初始解状态S.每个T值的迭代次数. (2)对i=1,...,L,做(3)至(7)步. (3)产生新解S'. (4)计算Δt=C(S')-C(S),其中C(S)为评价函数. (5)若Δt<0,则接受新解S'作为当前解:否则以exp(-Δt/(kT))的概率接受S'作为当前解(k为玻尔兹曼常数,一般不管它?) (6)如果满足终止条件,则输出当前解作为最优解,结束程序. 终止条件通…
模拟退火.挺好理解的.然后res打成了ans一直WA一直WA...!!!一定要注意嗷嗷嗷一定要注意嗷嗷嗷一定要注意嗷嗷嗷. 然后我就一直卡一直卡...发现最少1800次的时候就可以出解了.然后我就去调T的参数.0.85/0.82都会WA.因为T的变化幅度太大.0.95/0.92都能A. bzoj#31挺开心的. #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> #i…
3680: 吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 3192  Solved: 1198[Submit][Status][Discuss] Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将 n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有一个公共的绳结x.吊好gty后蒟蒻们发现…