首页 > 其他 > 详细

[学习笔记]闵可夫斯基和

时间:2019-06-07 12:17:10      阅读:766      评论:0      收藏:0      [点我收藏+]

定义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)的斜率哪个更大。(叉积判断即可)

相当于直接扔掉了一列或者一行

证明考虑反证法即可。

例题:CF1019E Raining season

 

[学习笔记]闵可夫斯基和

原文:https://www.cnblogs.com/Miracevin/p/10987814.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!