
计算几何
S atur
要变成萤火虫~
展开
-
B. Ball Dropping (简单几何计算 / 相似三角形) (2021牛客暑期多校训练营1)
传送门题意: 给出如图所示的梯形柱和球的 a, b, h, r ,试问该球体是否能成功掉出柱体,若无法掉落则计算出其球星距柱体底面的距离 ?思路:简单的利用三角形的相似就能推算出来了。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int&g...原创 2021-07-24 10:38:56 · 258 阅读 · 0 评论 -
HDU 6206 Apple (计算几何_三点求圆 & 高精度浮点数 & Java大数_BigDecimal)
传送门题意:确定第四个点是否在前三个点形成的圆以外,若是输出"Accepted",否则输出"Rejected"。思路:这里应用其他大佬的证明过程(截图偏于保存,细则可移步查看)。有了圆心 (,),再带入任意一点便能求得半径值了。但是由于这个题的精度爆double,于是采取Java的大数BigDecimal来求解,这里先展示C++的代码思路结构。C++代码实现:#include<bits/stdc++.h>#define endl '\n'#def原创 2021-04-20 20:49:47 · 223 阅读 · 0 评论 -
A. Weird Flecks, But OK (计算几何&三维最小圆覆盖)(2021年度训练联盟热身训练赛第一场)
传送门题意:一个三维立方体中有 n 个瑕疵点,现希望能从某个平面垂直向下切一个圆能把所有瑕疵都去除,需要找到这个一次能去除所有点的最小圆直径,即找到三个维度上的最小圆覆盖。思路:比常规的最小圆覆盖多了一个维度,分三个方向求解三次取最小答案即可。代码实现1:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long原创 2021-04-20 00:56:09 · 237 阅读 · 0 评论 -
最小圆覆盖(计算几何基础)
传送门思路:① 随机化点集(可降低复杂度)② 初始随意找到两点,设为和,以和为直径做出初始圆(以 表示覆盖前 i 个点的最小圆)。③ 依次加入新的点,若当前点在圆中,则,否则以作为新的直径端点做圆(显然点在新圆的边界上)。④ 但是新圆又不一定能包含之前的所有 i 个点,于是我们遍历找到前 i 个点中不在中的点,那么点和一定都会在新圆的边界上,于是直接以为直径做出新圆。⑤ 同样也不一定能包含之前的所有 j...原创 2021-04-20 00:43:01 · 1025 阅读 · 0 评论