博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[学习笔记]闵可夫斯基和
阅读量:6935 次
发布时间:2019-06-27

本文共 335 字,大约阅读时间需要 1 分钟。

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

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

证明考虑反证法即可。

例题:

 

转载于:https://www.cnblogs.com/Miracevin/p/10987814.html

你可能感兴趣的文章
classes目录中没有class文件的一个原因
查看>>
微信公众平台开发 一 账号类别与申请
查看>>
取指定的字符串,字符串里面有汉字和字母
查看>>
华为招聘机试整理10:实现字符串中子字符串的替换
查看>>
VMware虚拟机上安装linux和克隆
查看>>
Python的open函数
查看>>
IDEA在debug时修改变量值
查看>>
Dell poweredge r210进BIOS改动磁盘控制器(SATA Controller)接口模式
查看>>
Go 1.5keyword搜索文件夹、文件、文件内容_修复一个小BUG
查看>>
20160205.CCPP体系具体解释(0015天)
查看>>
匈牙利算法解决二分图匹配
查看>>
.NET Core 2.0 单元测试中初识 IOptionsMonitor<T>
查看>>
关于内存中栈和堆的区别(非数据结构中的堆和栈,区别)
查看>>
redhat6.7在线安装postgresql9
查看>>
Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法
查看>>
js实现手机页面定位
查看>>
第三方Android 模拟器流畅速度快,适合开发人员
查看>>
UWP-消息提示(仿Android)
查看>>
控件UI性能调优 -- SizeChanged不是万能的
查看>>
【git】把本地项目和远程git仓库相连通
查看>>