![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
Daniel__d
这个作者很懒,什么都没留下…
展开
-
三维凸包板子-计算几何
三维凸包板子-计算几何解析先放个模板,待填坑代码#include<bits/stdc++.h>using namespace std;const int M=2009;const double eps=1e-10;//注意精度int n,cnt,vis[M][M],tot;double ans;double Rand(){return rand()/(double)...原创 2020-03-29 10:50:54 · 176 阅读 · 0 评论 -
三角形面积并-扫描线,计算几何
P4406 三角形面积并-扫描线,计算几何题目描述题解首先,我们将整个图形的各个交点求出来,然后按照横坐标升序排列,我们就可以发现两个点所在平行于y轴的直线之间的面积是梯形,然后扫描线扫一遍就好了。注意1,精度问题2,对于特殊情况如下图,要特判代码#include<bits/stdc++.h>#define M 109using namespace std;...原创 2020-03-29 10:51:10 · 364 阅读 · 0 评论 -
瞭望塔-半平面交
瞭望塔-半平面交题目描述题解首先维护出所有直线的半平面交(注意加边界),所有直线的半平面交是一个下凸壳,然后发现瞭望塔的横坐标一定是下凸壳中顶点的横坐标,或原村庄点的横坐标,O(n)扫一遍更新答案代码实现(一直90分,不知哪里挂了)#include<bits/stdc++.h>#define M 100009using namespace std;int tot,cn...原创 2020-03-29 10:52:58 · 174 阅读 · 0 评论 -
水平可见直线-半平面交,单调栈
水平可见直线-半平面交,单调栈题目描述题解按照斜率为第一关键字,截距为第二关键字对直线进行排序,发现最后的可见直线必然构成一个斜率递增的下凸壳(如下图),于是单调栈维护代码实现#include<bits/stdc++.h>#define M 100009 using namespace std;struct line{ double x,y; int id;}...原创 2020-03-29 10:53:08 · 134 阅读 · 0 评论 -
最大土地面积-凸包
最大土地面积-凸包题目描述题解首先可以发现这四个点必定在凸包上,所以先求出凸包,然后再枚举对角线以及对角线两端到对角线距离最远的点,更新答案即可代码#include<bits/stdc++.h>#define M 2009using namespace std;struct point{ double x,y; point(double a=0,double b=...原创 2020-03-29 10:53:16 · 170 阅读 · 0 评论 -
191227-计算几何-凸包
191227-计算几何-凸包Graham扫描法#include<bits/stdc++.h>#define M 20009 using namespace std;struct point{ double x,y; point(double a=0,double b=0){x=a,y=b;} friend inline point operator+(const poi...原创 2020-03-29 10:50:14 · 92 阅读 · 0 评论