这个东西代码我是对着Trinkle的写的,所以就不放代码了..

Delaunay剖分的定义: 一个三角剖分是Delaunay的当且仅当其中的每个三角形的外接圆内部(不包括边界)都没有点.

它的存在性是调整法可证的.

最小生成树的性质: 对于每个环c,它上面最长的边一定有一条不在MST上.

Delaunay剖分的性质: 如果有一条边的两个端点在一个内部(包括边界)没有其他点的圆上,那么这条边一定在Delaunay剖分内(反证).

那么如果有一条边u,v不在一个Delaunay剖分上,那么在任何一个u,v的外接圆内一定存在一个点c.我们考虑u,v为直径的那个圆,显然u--v,v--c,c--u成为一个环且u--v是最长边,那么u--v就可以被消去,从而不在MST上.

那么思路就比较明确了,我们先求出Delaunay剖分,再对Delaunay剖分上的边做MST. Delaunay剖分是一个平面图所以边数是与点数成线性关系的.

我们做Delaunay剖分的方法是: 对点按照x先的顺序排序,然后分治的做.那么我们现在需要考虑的就是合并两个不相交的Delaunay剖分.

我们可以先找到最低的边,以此为基准每次添加一个没有点在内部的三角形将这两个剖分连接.具体做法可以看这个 http://www.geom.uiuc.edu/~samuelp/del_project.html ,还是相当生动形象的.

复杂度的话,暴力就是O(n)一次的,因为每条遍历过的边要么不再碰了要么就删去了,然后也只会加O(n)条边.

所以保持总复杂度O(nlogn)是相对轻易的事情(虽然一点也不好写).

Delaunay剖分与平面欧几里得距离最小生成树的更多相关文章

  1. OpenCV生成点集的Delaunay剖分和Voronoi图

    实现内容: 设置一副图像大小为600*600.图像像素值全为0,为黑色. 在图像中Rect(100,100,400,400)的区域随机产生20个点.并画出. 产生这些点集的Delaunay剖分和Vor ...

  2. Delaunay Triangulation in OpenCascade

    Delaunay Triangulation in OpenCascade eryar@163.com 摘要:本文简要介绍了Delaunay三角剖分的基础理论,并使用OpenCascade的三角剖分算 ...

  3. OpenCV——Delaunay三角 [转载]

    从这个博客转载 http://blog.csdn.net/raby_gyl/article/details/17409717 请其它同学转载时注明原始文章的出处! Delaunay三角剖分是1934年 ...

  4. paper 153:Delaunay三角剖分算法--get 这个小技术吧!

    直接摘自百度百科,希望大家能根据下面的介绍稍微理顺思路,按需使用,加油! 解释一下:点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技 ...

  5. Delaunay三角剖分及MATLAB实例

    https://blog.csdn.net/piaoxuezhong/article/details/68065170 一.原理部分 点集的三角剖分(Triangulation),对数值分析(如有限元 ...

  6. ACM主要算法

    ACM主要算法ACM主要算法介绍 初期篇 一.基本算法(1)枚举(poj1753, poj2965)(2)贪心(poj1328, poj2109, poj2586)(3)递归和分治法(4)递推(5)构 ...

  7. ACM常用算法

    数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维 ...

  8. ACM需要掌握算法

    数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维 ...

  9. ACM用到的算法。先做个笔记,记一下

    ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 ...

随机推荐

  1. Caliburn.Micro学习笔记目录

    Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 Caliburn.Micro学习笔记(二)----Actions Caliburn.Micro学习笔记(三)----事件聚合IE ...

  2. 使用Minicom基于串口调试HiKey

    虽然通过adb shell调试方便,但是有些时候不得不借助于串口进行调试,比如测试suspend to ram之类的功能时,adb服务被关闭. 同时在minicom中也可以进入shell,进行操作. ...

  3. Windows10下安装OpenSSL

    Windows10下安装的方法 安装环境:Windows10专业版+VS2013 工具:ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi,下载地址:http: ...

  4. TCP进制转换

    /// <summary> /// 将十六进制字符串转化为字节数组 /// </summary> /// <param name="src">& ...

  5. oracle数据泵导入

    假设将dmp放到/data目录下,首先在数据库中创建directory目录SQL> create directory exp as '/data/'在操作系统命令执行导入命令.impdp sys ...

  6. sql server如何分组编号

    我们在生产实践中经常会有这样的需求:分组编号. 如下有一个城市区域表region: 我们需要对上表region按city分组,对region进行排序,得到如下结果: 具体sql如下: select c ...

  7. asp.net gridview 分页显示不出来的问题

    使用gridview分页显示,在点击第二页的时候显示空白,无数据. 原因是页面刷新,绑定datatable未执行 解决方法: 1.将datatable设置为静态 2.在OnPageIndexChang ...

  8. Android 轮换控件

    首先是控件轮换 一.创建主布局 1.用到的控件是 TextSwitcher (文本轮换) 那么其他对应的也就是 ImageSwitcher (图片轮换) <LinearLayout xmlns: ...

  9. 北京培训记day1

    数学什么的....简直是丧心病狂啊好不好 引入:Q1:前n个数中最多能取几个,使得没有一个数是另一个的倍数   答案:(n/2)上取整 p.s.取后n/2个就好了 Q2:在Q1条件下,和最小为多少 答 ...

  10. vs2015 HTTP Error 400. The request hostname is invalid.

    <site name="> <application path="/" applicationPool="Clr4IntegratedAppP ...