[学习笔记]闵可夫斯基和
定义p+q=(p.x+q.x,p.y+q.y),给定两个点集,求{pi+qj}的凸包(凸壳)的问题
以求凸壳为例(凸包可以通过求上下凸壳然后拼凑):
显而易见的结论是:
新凸壳上的点一定是由p和q的凸壳上的点相加之后构成的
求出p,q的凸壳,然后合并
合并方法:双指针:
图片by:shadowice1984
注意左右两个图的对应。发现就是走n+m-1步,路上的点加入新凸壳
开始时候,两个指针p1,p2都在1位置,(p1,p2+1),(p1+1,p2)和(p1,p2)的斜率哪个更大。(叉积判断即可)
相当于直接扔掉了一列或者一行
证明考虑反证法即可。