- 博客(10)
- 收藏
- 关注
原创 【ZJOI2018】保镖(Voronoi图)(Delaunay三角剖分)(圆的反演)(三维凸包)(欧拉定理)
高阶计算几何知识+码农实现 O(n^2)不会单log 三维凸包或 单log 最远点Voronoi图,不然可以做到一个 log如果你会以上两种算法,请联系博主,万分感谢
2020-01-19 11:59:31 780
原创 【BZOJ4219】跑得比谁都快(Voronoi图)(Delaunay三角剖分)
传送门D剖板子题,参考了这篇文章的讲解:here,以及darklove的实现:here确实是细节一大堆,很多地方能不能取等号要好好斟酌一下。太多了不想讲目前找得到的C++代码只有darklove的是严格O(nlogn)O(n\log n)O(nlogn),其他都是O(n2)O(n^2)O(n2)没有被卡。。。代码:#include<bits/stdc++.h>#def...
2020-01-17 08:44:22 292 1
原创 【WC2013】平面图(平面图转对偶图)(最小左转法)(扫描线点定位)(瓶颈路)
传送门题解:板子一大堆。首先容易发现我们要求的就是对偶图的瓶颈路。最小左转法转对偶图,询问离线,扫描线进行点定位,然后随便用你喜欢的方式求一下瓶颈路即可。代码:#include<bits/stdc++.h>#define ll long long#define re register#define db double#define cs constnames...
2020-01-10 17:14:43 326
原创 【ZJOI2008】Risk(最小左转法)(点定位)(扫描线)
传送门题解:显然要做的事情就是确定平面划分然后上一遍扫描线点定位。点定位的具体做法其实就是扫描线一下,找到自己上方第一条边,就能确定自己所在的平面了。如果本身平面图上的点是连通的可以直接上最小左转法,但是题目里面第二个图那种就会出事。解决方法是先搞出连通块,每个连通块最高的点用点定位的方法找到上方第一条线段,然后连到端点,这样不会破坏原来图的平面划分。然后上最小左转法。代码:#i...
2020-01-10 11:01:59 299
原创 【HNOI2016】矿区(平面图转对偶图)(最小左转法)
传送门题解:首先假设我们已经把对偶图搞出来了怎么做?随便搞一棵生成树,把外面的无界区域定位根,于是我们就可以把询问区域划分成若干连通块了,剩下的就随便做了。转对偶图的话需要确定每个封闭图形,把每条边拆成两个方向,然后最小左转法就行了。代码:#include<bits/stdc++.h>#define ll long long#define re register#...
2020-01-09 16:19:00 247
原创 【BZOJ2391】Cirno的忧郁(三角剖分)(平衡树维护极角序扫描线)
传送门题解:首先题目似乎没有说不存在三点共线的情况。。。于是,我随便找了5篇题解,全部可以被以下两组数据中的一组或两组hack。3 10 22 22 01 2 1231 2 333 2 13 10 22 22 01 1 1231 2 333 2 1先讲一下思路:考虑类似面积的处理,我们从原点向多边形顶点连线,将原多边形剖成若干三角形。计算面积...
2020-01-09 10:46:03 307
原创 【CodeChef NTHCIR】Rohith and Circles(线性递推)(圆的反演)
传送门题解:圆的反演做法比较明显,直接把 C1C_1C1 和 C2C_2C2 的交点作为反演点,那么 C1C_1C1 和 C2C_2C2 反演出来就是两条平行直线,把后面的圆一个个放进去就行了。不过也可以做得简单一点,利用笛卡尔定理:here。设 a1=−1/r1,ai=1/ria_1=-1/r_1,a_i=1/r_ia1=−1/r1,ai=1/ri,则 (a1+a2+a...
2020-01-08 17:25:25 276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人