摘要: 代码实现: struct point{ double x , y; } struct line{ point a , b ; } double Dot(Vector A,Vector B) { return A.x*B.x+A.y*B.y; } //点积 double Length(Vector A 阅读全文
posted @ 2019-10-08 14:59 七忆鱼 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 转自https://www.cnblogs.com/wuwangchuxin0924/p/6223152.html 了解凸包及Graham扫描法 问题描述:二位平面内,给定n个散乱的点,求一个最小凸多边形(凸包),使得n个点都不在凸多边形外。 问题的解决用到Graham算法: 算法步骤: 1.取y坐 阅读全文
posted @ 2019-10-08 14:25 七忆鱼 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 转自:https://www.cnblogs.com/125418a/p/11621177.html 参考书籍《算法竞赛入门到进阶》 最小圆覆盖问题:给定n个点的平面坐标,求一个半径最小的圆,把n个点全部包围,部分点在圆上。(两种算法:几何算法和模拟退火算法) 几何算法: (1)加第1个点P1。C1 阅读全文
posted @ 2019-10-08 13:53 七忆鱼 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 一、什么是模拟退火算法 1、爬山算法 在了解模拟退火算法之前,先来看一下爬山算法:爬山算法是一种贪心算法,该算法每次从当前的解空间中选取一个解作为最优解,直到达到一个局部最优解。假设函数f(x)的图像如下图:现在使用爬山算法来求f(x)的最大值,若C为当前最优解,则爬山算法搜索到A就会停止搜索,这会 阅读全文
posted @ 2019-10-08 13:47 七忆鱼 阅读(1251) 评论(0) 推荐(0) 编辑