hdu 1109 Run Away
我的第一篇模拟退火,先是看资料,发现太高深,又去搜博客什么的,在一个地方看到了比较通俗的解读。至今还只是会写,不懂得原理是什么,能ac也是碰巧,发现太高深而且又属于YY型的算法,果断过一题放弃掉。下面贴上代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
#include <algorithm> #include <iostream> #include <cstdlib> #include <limits.h> #include <cstring> #include <cstdio> #include <time.h> #include <cmath> #include <queue>#define P 0.6 #define INF 0x7fffffffusing namespace std;const int N=1001; const int maxn=10; const int maxd=25;struct node {double x;double y;double dis; }p[N],tr[maxn];int x,y,n;inline int max(int x,int y) {return x<y?y:x; }double get_dis(node t) {double mi=INT_MAX;for(int i=0;i<n;i++){double dis=(t.x-p[i].x)*(t.x-p[i].x)+(t.y-p[i].y)*(t.y-p[i].y);if(dis<mi)mi=dis;}return mi; }node get_ans() {node tmp;double t,t_min=(1e-2)*5,k1,k2;t=max(x,y)*1.0/sqrt(n*1.0);for(int i=0;i<maxn;i++){tr[i].x=((rand()%1000+1)*1.0/1000.00)*x;tr[i].y=((rand()%1000+1)*1.0/1000.00)*y;tr[i].dis=get_dis(tr[i]);}while(t>t_min){for(int i=0;i<maxn;i++){for(int j=1;j<=maxd;j++){k1=(double)(rand()%1000+1)*1.0/1000.00*t;k2=sqrt(t*t-k1*k1);if(rand()%2) k1*=-1;if(rand()%2) k2*=-1;tmp.x=tr[i].x+k1;tmp.y=tr[i].y+k2;if(tmp.x>=0&&tmp.x<=x&&tmp.y>=0&&tmp.y<=y){tmp.dis=get_dis(tmp);if(tmp.dis>tr[i].dis)tr[i]=tmp;}}}t=t*P;}int max=0;for(int i=1;i<maxn;i++){if(tr[i].dis>tr[max].dis)max=i;}return tr[max]; }int main() {int t;node ans;scanf("%d",&t);while(t--){scanf("%d %d %d",&x,&y,&n);for(int i=0;i<n;i++)scanf("%lf %lf",&p[i].x,&p[i].y);ans=get_ans();printf("The safest point is (%.1lf, %.1lf).\n",ans.x,ans.y);}return 0; }
也不想解释什么了,也是基本照搬别人东西,也觉得自己比较猥琐。不会呀,伤不起。。
转载于:https://www.cnblogs.com/RainingDays/archive/2013/05/07/3065527.html
hdu 1109 Run Away相关推荐
- 杭电OJ分类题目(1)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...
- ACM计算几何题目推荐
//第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...
- POJ 计算几何入门题目推荐
其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专 ...
- 计算几何相关资料+题目推荐(不定期补充)
旋转卡壳:http://blog.csdn.net/accry/article/details/6070626 计算几何题目推荐:http://blog.csdn.net/accry/article/ ...
- 计算几何问题 java_【转载】ACM计算几何题目推荐
2107 Quoit Design 典型最近点对问题 POJ 3714 Raid 变种最近点对问题 B,最小包围圆 最小包围圆的算法是一种增量算法,期望是O(n). ZO ...
- 模拟退火算法从原理到实战【基础篇】
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小 ...
- 凸包——Graham-Scan算法
凸包(Convex Hull)是一个计算几何(图形学)中的概念. 在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包.X的凸包可以用X内所有点(X1,-Xn)的凸组合来构造 ...
- poj计算几何题推荐
POJ 计算几何入门题目推荐(转) 其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的 ...
- acm 计算几何题目集合
//第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...
最新文章
- JAVA Thread Dumps 三部曲
- python清除缓存的命令_python – 重启django服务器时清除缓存的最佳位置
- 如何写圆角矩形用html,圆角矩形的html+css实现
- Hibernate HQL基础 调用数据库存储过程
- [矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats
- FPGA(5)--VHDL--10十进制计数器及7段显示译码器
- docker-compose安装问题
- mysql添加完全一样的一条记录_MYSQL插入一条新的数据的时候,判断表中是否有相同数据的SQL怎么写?...
- 将Maven项目发布到Nexus私服
- 学python有前途吗-Python全栈开发有前景吗,是否值得学习?
- sql server 死锁排查
- Go语言编程从入门到精通,数据类型
- 企业污染排放数据库、海关数据库
- 计算机组成原理选择题题库
- iOS -- tableView截取长图 或者 UIScrollView截取长图 (Swift代码)
- python基础(中)
- 国外计算机cpu排行,台式计算机CPU排行榜,看看你的CPU排第几.doc
- 从哪里租vps远程桌面服务器,vps远程桌面服务器出租费用
- 慎用chrome密码记住功能
- 【原创】-eclipse下连Hadoop报java.lang.OutOfMemoryError: Java heap space的解决办法