随笔分类 -  计算几何

摘要:求出凸包,显然四个点在凸包上。考虑枚举某点,再移动另一点作为对角线,容易发现剩下两点的最优位置是单调的。过程类似旋转卡壳。 阅读全文
posted @ 2019-01-20 20:33 Gloid 阅读(178) 评论(0) 推荐(0)
摘要:考虑怎样的点满足条件。设其为(xp,yp),则要满足(x0-xp,y0-yp)×(x1-xp,y1-yp)<=(xi-xp,yi-yp)×(xi+1-xp,yi+1-yp)对任意i成立。拆开式子,有(x0-xp)*(y1-yp)-(y0-yp)*(x1-xp)<=(xi-xp)*(yi+1-yp)- 阅读全文
posted @ 2019-01-17 20:52 Gloid 阅读(189) 评论(0) 推荐(0)
摘要:考虑先将平面图转化为对偶图。具体地,将无向边拆成两条有向边。每次考虑找到包围一个区域的所有边。对当前考虑的边,找到该边的反向边在该边终点的出边集中,按极角序排序的后继,这条后继边也是包围该区域的边。这样对偶图就建好了。 考虑怎么用对偶图解决原问题。将外围的无限域也作为对偶图中的一个点,以其为根随便找 阅读全文
posted @ 2019-01-13 01:27 Gloid 阅读(193) 评论(0) 推荐(0)
摘要:即询问凸包是否有交。这显然可以直接求半平面交,但是复杂度O(q(n+m)),且没有什么优化空间。 更直接地表示,即相当于询问是否存在点a∈A,b∈B,使得a+d=b。移项,得到d=b-a。可以发现等式右边是一个闵可夫斯基和。求闵可夫斯基和只需要分别求出两个凸包,然后每次考虑ai+1+bi和ai+bi 阅读全文
posted @ 2019-01-12 16:03 Gloid 阅读(312) 评论(0) 推荐(0)
摘要:把每个人的监视范围看成点,相邻的两个监视范围连边,那么跑一遍最短路就可以了(事实上边权都为1可以直接bfs)。显然存在最优路线没有某个时刻同时被多于两人监视,要到达另一个区域的话完全可以经过分界线而不是和其他区域的交点(若两个区域只有一个交点的话是不能直接到达的),总之就是说不用特判同时被多人监视的 阅读全文
posted @ 2018-08-04 12:28 Gloid 阅读(299) 评论(0) 推荐(0)