hdu3932 模拟退火】的更多相关文章

模拟退火绝对是从OI--ACM以来接触过的所有算法里面最黑科技的orz 题意:地上有一堆hole,要找一个点,使得(距离该点最远的hole的距离)最小. sol:本来想套昨天的模拟退火模板,初值(0,0),向8个方向扩散. 然而这题并没有这么naive. 模板2.0 get: #define eps 1e-3 #define pi acos(-1.0) #define POI 15 //独立跑POI次,找其中最小的 tp[1..POI]是随机的初值 #define RUN 40 //迭代次数,本…
Minimal Circle Time Limit: 5 Seconds      Memory Limit: 32768 KB You are to write a program to find a circle which covers a set of points and has the minimal area. There will be no more than 100 points in one problem. Input The input contains several…
HDU3932 题目大意:给定一堆点,找到一个点的位置使这个点到所有点中的最大距离最小 简单的模拟退火即可 #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <ctime> #include <algorithm> using namespace std; #define…
// 2019.10.3 // 练习题:2018 ICPC 南京现场赛 D Country Meow 题目大意 给定空间内 N 个点,求某个点到 N 个点的距离最大值的最小值.   思路 非常裸的最小球覆盖问题啊,即找到半径最小的球包含全部的点. 在最小圆覆盖问题上,可以使用随机增量法,这里没有四点确定球心的公式,所以板子失效了. 最小圆覆盖可以用三分套三分,这里空间有三维,假装证明得到在任意一维上都满足凸函数特性,那么再套一层维度三分就OK了.   AC代码 三分套三分套三分写法,复杂度O(n…
看题意就是一道数学物理题,带权费马点   --这怎么是数学了,这也是物理的 所以要用物理方法,比如FFF 国际著名oi选手miaom曾说 模拟退火初温可以低,但是最好烧个几千次 国际著名物理课代表+1曾说 miaom说什么都对 但是我瞎捣鼓了一波烧了一次不但A了还过了样例(不要说我递进的顺序不对),真是神奇 #include<bits/stdc++.h> #define MAXN 10000 #define EPS 1e-9 using namespace std; ],n,p,q; doub…
题意: 给你不超过8条一端在圆心的半径,求他们组成的凸包的最大面积. SOL: 正解怎么搞啊不会啊...然后昨天毛爷爷刚讲过模拟退火...那么就打一个吧... 然后就T了,不过三角形的部分分妥妥的... 然后在自信的协助下被他改了改参数然后过了九个点...(对着数据调参也是醉了... 剩下一个点感觉没法搞啊QAQ...差太多了...感觉退完火爬爬山应该会很兹瓷... 90分code: /*======================================================…
题目链接:http://poj.org/problem?id=2069 题意:求一个半径最小的球,使得它可以包围住所有点. 模拟退火,圆心每次都去找最远那个点,这样两点之间的距离就是半径,那么接下来移动的方向肯定就是朝着这个最远点移动,保证比例相同且在球内的情况下移动. 不看题解想不到,这个东西有点难啊... #include <algorithm> #include <iostream> #include <iomanip> #include <cstring&…
题目链接:http://poj.org/problem?id=2420 求费马点,即到所有其他点总和距离最小的点. 一开始想枚举一个坐标,另一个坐标二分的,但是check的时候还是O(n)的,复杂度相当于O(n^2lgn),没意义. 学习一种神贪心,模拟退火.感觉和启发式搜索有点像啊,又有点像牛顿迭代. 思路就是,固定一个点和一个步长,从这个点开始向四个方向扩展,扩展的步长就是当前步长.如果扩展到的点可以更新答案,那么记住这个点,也就是说这个贪心方向(梯度?)是正确的.就可以拿着这个点继续沿着这…
前几天在做孔群加工问题,各种假设到最后就是求解旅行商问题了,因为原本就有matlab代码模板所以当时就改了城市坐标直接用了,发现运行速度惨不忍睹,最后用上了两个队友的电脑一起跑.这次模拟结束后在想用c语言来实现的话应该可以提高不少效率.关于模拟退火和旅行商问题的介绍我就不赘述了,网上各路大神说的都很详细,我下面就把c语言和matlab代码先附上. c语言: #ifndef _OPTION_H #define _OPTION_H /* * T0 表示 初始温度 * Tf 表示 结束时的温度 * a…
题目链接 居然1Y了,以前写的模拟退火很靠谱啊. #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <ctime> #include <cstdlib> #include <iostream> using namespace std; struct point { double x,y; }p[]; int n;…