平面上给你n(不超过2000)个点,问你能构成多少个面积在[A,B]之间的Rt三角形。 枚举每个点作为直角顶点,对其他点极角排序,同方向的按长度排序,然后依次枚举每个向量,与其对应的另一条直角边是单调的,可以用一个pointer做出来,然后可以得出那些同方向的向量的区间(这个代码好像有点问题,可能会 ...
分类:
编程语言 时间:
2017-08-09 21:12:11
阅读次数:
235
平面上n个红点,m个黑点,问你多少个黑点至少在一个红三角形内。 对红点求凸包后,转化为询问有多少个黑点在凸包内。 点在凸多边形内部判定,选定一个凸包上的点作原点,对凸包三角剖分,将其他的点极角排序之后,使用二分法就可以判定点在哪个剖分出来的三角形的夹角内,然后用叉积即可判定其在凸包内还是外,O(lo ...
分类:
编程语言 时间:
2017-08-07 10:19:22
阅读次数:
138
学习了极角排序的一些套路 UVA11696 给你一些圆和一些点,保证点不在圆内,两点相连通当且仅当两点联结的线段不与任何一个圆相交,问联通块个数 跟之前那道UVA很类似 其实更加简单 枚举每个点 把其他所有点和圆对他极角排序 用set维护圆到当前点的切线的最短距离 因为点不在圆内 所以直接判断距离就 ...
分类:
其他好文 时间:
2017-08-05 20:32:06
阅读次数:
129
关于极角排序: 在平面内取一个定点O,叫极点,引一条射线Ox,叫做极轴,再选定一个长度单位和角度的正方向(通常取逆时针方向)。 对于平面内任何一点M,用ρ表示线段OM的长度(有时也用r表示),θ表示从Ox到OM的角度,ρ叫做点M的极径,θ叫做点M的极角,有序数对 (ρ,θ)就叫点M的极坐标。 那么给 ...
分类:
编程语言 时间:
2017-07-28 09:49:28
阅读次数:
350
极角排序详解 名词释义: 在平面内取一个定点O,叫极点,引一条射线Ox,叫做极轴,再选定一个长度单位和角度的正方向(通常取逆时针方向)。对于平面内任何一点M,用ρ表示线段OM的长度(有时也用r表示),θ表示从Ox到OM的角度,ρ叫做点M的极径,θ叫做点M的极角,有序数对 (ρ,θ)就叫点M的极坐标 ...
分类:
编程语言 时间:
2017-07-25 18:09:49
阅读次数:
257
题目链接 Paint Tree 给你一棵n个点的树和n个直角坐标系上的点,现在要把树上的n个点映射到直角坐标系的n个点中,要求是除了在顶点处不能有线段的相交。 我们先选一个在直角坐标系中的最左下角的点,把根结点放到这个点中,然后对剩下的点进行极角排序,按逆时顺序一个个塞进来,类似地递归处理。 这样就 ...
分类:
编程语言 时间:
2017-07-22 00:13:40
阅读次数:
330
今天算是把半平面交的nlogn版本搞出来了 也做了一些半平面交的经典题 最重要的是感受到了 计算几何的精度的深深的恶意 nlogn的做法 和凸包类似 维护一个直线的双端队列 极角排序后每次加入一条直线都从队首队尾弹出无效直线 在加入时和队尾直线产生交点 最后队首队尾产生交点 中间还有当队尾两直线向量 ...
分类:
其他好文 时间:
2017-07-21 22:12:25
阅读次数:
201
LINK 题意:给出一个简单多边形,按极角序输出其坐标。 思路:水题。对任意两点求叉积正负判断相对位置,为0则按长度排序 ...
分类:
其他好文 时间:
2017-07-20 16:25:31
阅读次数:
143
LINK 题意:给出一个简单几何,问与其边距离长为L的几何图形的周长。 思路:求一个几何图形的最小外接几何,就是求凸包,距离为L相当于再多增加上一个圆的周长(因为只有四个角)。看了黑书使用graham算法极角序求凸包会有点小问题,最好用水平序比较好。或者用Melkman算法 ...
分类:
其他好文 时间:
2017-07-16 12:38:12
阅读次数:
137
1 //极角排序 2 #include 3 #define sqr(x) ((x)*(x)) 4 using namespace std; 5 int n,st[200001],top; 6 struct POI 7 { 8 int x,y; 9 POI() 10 { 11 x=y=0; 12 } ... ...
分类:
其他好文 时间:
2017-07-09 17:17:08
阅读次数:
147