问题引入 题目描述 给出N个点,让你画一个最小的包含所有点的圆。 输入格式 先给出点的个数N,2<=N<=100000,再给出坐标Xi,Yi.(-10000.0<=xi,yi<=10000.0) 输出格式 输出圆的半径,及圆心的坐标,保留10位小数 在解这道题时,先要弄懂另一个知识点--三点定圆 给 ...
分类:
其他好文 时间:
2020-06-05 23:05:21
阅读次数:
88
"bzoj 1337 最小圆覆盖" 补充一个求三角形外心的向量法.用了点积的几何意义,很实用. "出处" . 使用随机增量法求.首先随机打乱顺序,然后三重循环,选择当前在圆外的点更新圆,分别按照 $1/2/3$ 个点确定圆的方式更新即可. 由于随机一个点不在前 $i$ 个点的最小覆盖圆内的概率是 $ ...
分类:
其他好文 时间:
2019-02-16 19:32:26
阅读次数:
254
"传送门" 据说是一个叫做随机增量法的东西 枚举$i$,如果不在圆中将它设为圆心 枚举$j$,如果不在圆中将$(i,j)$成为新的圆的直径 枚举$k$,如果不在圆中让$i,j,k$组成的三角形的外接圆成为新的圆 据说在随机数据的情况下期望$O(n)$,所以要在读进来的时候random_shuffle ...
分类:
其他好文 时间:
2018-11-20 19:29:25
阅读次数:
178
最近 翔哥 上课讲 计算几何 这个神奇玩意。然后一堆新高一创新班的都特High,然后我们一堆初二的ZZ全程懵逼。 但是刚开始讲的这个东西还是令人 耳目一新 的。 原来随机化算法这么强劲?好了我们来看这个算法—— 随机增量法 一看名字就知道,先要把输入的点打乱,使其随机化。~~玄学~~ 然后就是从第一 ...
分类:
编程语言 时间:
2018-06-16 18:45:03
阅读次数:
201
```cpp #include #include #include #include using namespace std; const int N=505; int n; double r; struct dian { double x,y; dian(double X=0,double Y=0... ...
分类:
其他好文 时间:
2018-03-03 22:31:38
阅读次数:
244
题目描述 给出N个点,让你画一个最小的包含所有点的圆。 输入 先给出点的个数N,2<=N<=100000,再给出坐标Xi,Yi.(-10000.0<=xi,yi<=10000.0) 输出 输出圆的半径,及圆心的坐标 样例输入 6 8.0 9.0 4.0 7.5 1.0 2.0 5.1 8.7 9.0 ...
分类:
其他好文 时间:
2017-09-02 18:14:22
阅读次数:
179
【BZOJ1336】[Balkan2002]Alien最小圆覆盖 Description 给出N个点,让你画一个最小的包含所有点的圆。 给出N个点,让你画一个最小的包含所有点的圆。 Input 先给出点的个数N,2<=N<=100000,再给出坐标Xi,Yi.(-10000.0<=xi,yi<=10 ...
分类:
其他好文 时间:
2017-08-30 13:11:04
阅读次数:
160
首先通过随机增量法求出最小覆盖圆,作为答案的上界。 然后二分答案,检验的时候枚举每个点作为原点,求出其他每个点被包括在圆内的角度区间,然后扫描线即可。 时间复杂度$O(Tn^2\log n)$。 ...
分类:
其他好文 时间:
2016-08-10 22:21:48
阅读次数:
120
1336: [Balkan2002]Alien最小圆覆盖 Description 给出N个点,让你画一个最小的包含所有点的圆。 给出N个点,让你画一个最小的包含所有点的圆。 Input 先给出点的个数N,2<=N<=100000,再给出坐标Xi,Yi.(-10000.0<=xi,yi<=10000. ...
分类:
其他好文 时间:
2016-07-15 23:47:37
阅读次数:
298