模拟退火
gjghfd
这个作者很懒,什么都没留下…
展开
-
bzoj3874 [ AHOI2014 ] -- 爬山算法
不知道为什么,用模拟退火就WA了。。。 显然如果知道了总共购买几次,就可以贪心地求出答案。那么套个爬山就行了。 代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 210 10 #define原创 2017-05-26 16:44:39 · 447 阅读 · 0 评论 -
bzoj1038 [ ZJOI2008 ] -- 模拟退火+二分
这题正解是半平面交,但可以用模拟退火水过。。。 用模拟退火求x的值,然后二分求y的值就可以了。 当所有端点到这个点的直线按逆时针顺序时这个点可以看到任何位置。 代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 310原创 2017-05-26 16:44:34 · 218 阅读 · 0 评论 -
bzoj2428 [ HAOI2006 ] -- 模拟退火
题目大意: 已知N个正整数:A1、A2、……、An 。今要将它们分成M组,使得各组数据的数值和最平均,即各组的均方差最小。 思路: 考虑模拟退火。每次先对每个数随机分在哪个组,然后每次退火随机一个数x,将其换到组y,取y时按温度分类: 若温度高,则此时不稳定,y取温度最小的组。 若温度低,则此时已经接近稳定,随机选一个y。 只做一次显然有很大概率错误,所以要做至少1000次。 代码:原创 2017-05-26 16:44:31 · 204 阅读 · 0 评论 -
bzoj3680 -- 模拟退火
模拟退火裸题(输出"nan nan"可以AC) 代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 10010 8 struct Node{ 9 double x,y,z; 10 }a[N]; 11 double x,y,T=1000原创 2017-05-26 16:44:28 · 219 阅读 · 0 评论