题目大意:给定n个点(n
逗我?n
其实数据是随机生成的 经过验证 随机生成50w的点集 平均在凸包上的点在50~60个左右
于是求凸包之后就可以随便乱搞了- - 不会写O(n^3)的最小圆覆盖 写了O(n^4)的照过
注意最小圆覆盖时要讨论有两点在圆上和有三点在圆上两种情况
--------------------以上是题解-----------以下是粗口---------------...
分类:
其他好文 时间:
2014-12-26 18:46:13
阅读次数:
170
题目大意:给出平面上n个点,求最小圆覆盖。
思路:圆覆盖问题只与所有点中凸包上的点有关,因此先求一下凸包,然后数据范围骤减。大概是只剩下logn左右个点。这样就可以随便浪了。
先找所有三个点组成的圆,然后找两个点为直径所组成的圆。
还有就是三角形的外心公式,简直不是人推的,然后我就机制的百度了,结果如下:
不要模拟退火。。。
样例很坑,当你算出2.49 2.86的时候,不...
分类:
其他好文 时间:
2014-12-26 18:43:37
阅读次数:
255
http://acm.hdu.edu.cn/showproblem.php?pid=3932一定范围的平面上给一些点,求到这些点的最大距离最小,和上一题的题意正好相反,稍微改一下就可以这个问题又叫最小圆覆盖#include #include #include #include #include #i...
分类:
其他好文 时间:
2014-10-18 00:43:44
阅读次数:
223
套了个模板直接上,貌似没有随机化序列 QAQ//#pragma comment(linker, "/STACK:16777216") //for c++ Compiler#include #include #include #include #include #include #include #i...
分类:
其他好文 时间:
2014-08-18 21:42:12
阅读次数:
210
最小圆覆盖,很经典的问题。题目大概是,平面上n个点,求一个半径最小的圆,能够覆盖所有的点。算法有点难懂,于是讲讲我的理解。如果要求一个最小覆盖圆,这个圆至少要由三个点确定。有一种算法就是任意取三个点作圆,然后判断距离圆心最远的点是否在圆内,若在,则完成;若不在则用最远点更新这个圆。这里介绍的算法是,...
分类:
其他好文 时间:
2014-08-09 15:33:58
阅读次数:
209
最小圆覆盖#include #include #include #include using namespace std;const double eps=0.00000001;struct point { double x,y;}p[110];struct circle{ point cent; ...
分类:
其他好文 时间:
2014-08-02 01:30:52
阅读次数:
230
最小圆覆盖问题。根据黑书上的算法写的。定理:PI不在当前的圆内,则必在扩张后的圆上,即扩张后的圆必定经过PI。因为求最小圆使用的是点增量法,把问题规模由1增加到N。所以,每次增加规模时,必须先确定该点是否在圆内,若不在,则扩展。并以当前点为其中之一点,然后在P1,P2,....P(I-1)枚举另外两...
分类:
其他好文 时间:
2014-08-01 22:38:12
阅读次数:
294