2018.7.28(罗哲正 计算几何)

点边相关

格林公式(并不会)

题目

T1:Faster Than Light
显然肯定会落在格点上

对于角单独处理,也就是棍子两边都落在边上的情况。
此时棍子的姿态只与夹角有关,我们考虑棍子从平方移到竖放的过程
考虑每个格子,肯定会被经过两次(极限的边上只会经过一次)
第一次经过是棍子恰好碰到靠近角落的点,离开是恰好碰到远离
第二次经过相反
对于每个格子算出角度范围,排个序算贡献即可。

T2:Pun
每个点集找到重心与最远点
缩放到重心与最远点距离为1
然后按照极角序排序,记录角度与长度
有一个轮转相同则相似
每一个序列我们取出字典序最小的比较即可
可以用后缀数组

圆相关

题目

T1:清华集训2016 定向越野
暴力建图求最短路

T2:Kingdom Trip
已知j,往前扫,每个k对i的限制实际上是一个角度范围和一段弧

Polygons

基础知识

Minkowski sum:
对于两个凸包,我们确定左下角的点为基准。
把所有边拿出来,按照极角排序,扫一遍就行即可。

平面区域:
每个点对周围的点,把其他点按照极角序。
对于每条入边,我们把next的边连为顺时针第一个出边。按照这个跑即可

凸包/凸包直径

半平面交

点定位
从左往右扫描,判断过了几条边以及他们所夹的区域

凸包切线:

大型凸包切线

题目

T1:Enclosure
二分求凸包切线,把排掉的面积算一下即可。

T2:Circular Islands
每个红点和蓝点可以看做对线的限制,为一个区间。
先判断合法性再求解。
另一做法是求凸包,枚举判断。

T3:规避
也是找关键点求最短路

T4:NOI2017分身术
先求出所有的(k+1)个凸包(每次剥掉一层)
从外往内扫描相邻的两个凸包
存储外凸包上每个点对于内凸包的切线
每次删点考虑左右两个点的情况,讨论各种切线与直接连线的关系。理论O(1)

T5:Random convexhull
对于每条边算贡献,考虑合法的贡献与概率求和

T6:Bear and Isomorphic Points
显然每个i,j会形成一条直线产生限制。n^2条边超时
考虑优化,每个i肯定选择相对于1最近的两个点产生限制,其他限制都会被覆盖
考虑怎么找
①splay维护凸包序列
②线段树维护
③每次弹掉一段区间存到对应数组,需要时取回即可

Geometry

基础知识

三维向量变换
叉积等运算有关的公式

三维凸包

题目

T1:某区域赛F
做法①:神仙做法GG
做法②:解方程找到不动点,就可以推出最远的距离

T2:HDU5846
取出每个棱,求每条棱的交点,取出来求凸包

球面几何

基础知识

经纬度坐标系
原坐标:(x,y,z)
经度 A=atan2(y,x) A = a t a n 2 ( y , x )
纬度 B=asin2(z,x2+y2+z2) B = a s i n 2 ( z , x 2 + y 2 + z 2 )
反推
x=RcosAcosB x = R c o s A c o s B
y=RsinAcosB y = R s i n A c o s B
z=sinB z = s i n B

题目

T1:投影
考虑凸包上一个面的贡献
就上面来的光能产生投影,用积分算贡献(不会)

反演

反演含义

每个点保持他到反演中心的方向不变,距离变为d/r

反演性质

不过反演中心的直线反演过后是过反演中心的园
过反演中心的园反演过后是不过反演中心的直线
过反演中心的直线不变
过反演中心的园反演之后还过反演之后的园

题目

T1:
反演,求三点共线数目

T2:
反演之后可得到两条平行直线夹着一堆园
反演求直径

T3:
用共轭做exm????
分式变换可复合
反射为旋转平移的组合
反演= 1 1 ∑ 共 轭
旋转为乘上一个复数
平移为加上一个复数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值