计算几何
文章平均质量分 68
1
Gh0st_Lx
ACMer蒟蒻 / 北航研0
展开
-
P3217 [HNOI2011]数矩形
题目给定若干个点,从这些点里面选取4个点构成一个矩形,使得矩形面积最大原题链接:点这里算法思路思路对于一个矩形,给定他的两条对角线一定长度相等,且有,中点相等故我们可以通过枚举两个点,得到对角线,再排序过后,对相同的长度,相同中点的对角线处理知道对角线的向量,即可求出矩形的面积实现细节本题为了避免出现浮点数,用LL代替double,我们把所有的中点都乘以2,这样就可以只用LL表示中点,避免了精度带来的误差以及计算距离的时候,用平方来表示原来的数该题的关键就是自定义排序,让相同原创 2021-08-18 11:05:00 · 133 阅读 · 0 评论 -
P3744 李彬的几何
题目给定一个凸多边形,每个点最大可以移动的距离为ddd,让他变得不“凸”,求解最小d算法思路实际上,就是求解一个点到,他相邻两个点直线的距离的一半点移动0.5h0.5h0.5h,直线移动0.5h0.5h0.5h,然后这样就是水平的了做一个无穷小的偏移量,他就是凹的了最后需要实现的就是点到直线的距离了叉积/模长即可求得结果代码实现//#pragma GCC optimize("O3")#include <bits/stdc++.h>#include <unord原创 2021-08-18 09:25:52 · 118 阅读 · 0 评论 -
洛谷P6505 Run Away[计算几何][分治]
题目原题链接:点这里思路将一个点扩成一个圆二分圆的半径,如果当前圆能覆盖矩形的四个角,说明它能覆盖矩形如果不能,则将矩形分割为四个小矩形,递归判断递归边界l < eps && r < eps,这种情况可以把l,r看为一个点,就说明必然没有圆能覆盖到了,返回false代码实现#pragma GCC optimize("O3")#include <bits/stdc++.h>#include <unordered_map>#inclu原创 2021-08-17 22:04:54 · 140 阅读 · 0 评论 -
[NOI2005] 月下柠檬树 (自适应辛普森积分)
题目原题链接:点这里总体思路–>问题转化先将原本的柠檬树分解成为多个圆台,再单独看圆台的投影一个圆在地面的投影,是等比例的,而一条竖线的投影长度d=htanαd=\cfrac{h}{\tan \alpha}d=tanαh,这样也就得到了整棵树在平面上面的投影问题转换为面积并,显然自适应辛普森积分套上去就行了还有一个易错的点,就是函数F(x)F(x)F(x),每次找的时候都要O(n)O(n)O(n)找一遍最大值,因为大的影子可能会覆盖掉前后很多区间小的影子。(PS:原创 2021-08-17 20:55:08 · 356 阅读 · 0 评论