计算几何
shordinger
这个作者很懒,什么都没留下…
展开
-
2020-10-21
今天是满课的一天,于是我找了个水题,单纯的求逆序对!题目求逆序对本题的标答似乎是在归并排序的过程中记录交换的次数,不过我灵机一动就拿离散化加上求逆序对的操作求证了一遍,发现也非常能用,而且也是O(nlogn)的复杂度,完全能冲。代码如下#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll, ll> P;const int maxn = 5e5 + 5;ll c[原创 2020-10-21 22:10:12 · 66 阅读 · 0 评论 -
2020-10-20
今天这道题,是凸包的模板题,求的就是凸包的周长。先给出题目链接牛圈,凸包的计算方式其实是十分简单的,首先先把整张图上面最下面的那个点取出来作为起点,易证这个点必然存在于凸包上面。然后对剩下的所有点进行极角排序,就能得到有序的点坐标数组,按照顺时针从小到大排序,接下来的事情是开始扫描遍历这些点。扫描的时候每次都把一个点加入进去,并且与前面的所有已经加入的点进行比较,如果有点的角度小于当前加入的点相对于当前比较的点的角度,那么就退化更新那个点,利用双指针就可以维护。附上代码:#include <bi原创 2020-10-20 18:39:23 · 78 阅读 · 0 评论 -
2020-10-19
今天计算几何冲锋的第一天,选择了一道看上去颇有难度的扫描线题目。说实在的,这道题我打一开始抱着看题解的心去做的,想不到居然过了。废话不多说,咱们上题(三角形)。题目描述给出平面上的n个等腰直角三角形。每个三角形用3个整数描述x, y, m(m>0)。一个三角形的3个顶点分别是(x, y),(x+m, y)and(x, y+m)。你的任务是计算这些三角形覆盖的总面积。输入格式输入第一行是整数n(n≤2000)。接下来n行每行描述一个三角形,包括3个整数xi,yi,mi(1≤i≤n,-10^7原创 2020-10-19 19:47:23 · 276 阅读 · 0 评论