半平面交的算法及其应用课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《半平面交的算法及其应用课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平面 算法 及其 应用 课件
- 资源描述:
-
1、半平面交的算法及其应用半平面交的算法及其应用北京四中李澎煦基本概念半平面:半平面:平面上的直线及其一侧的部分。半平面可由不等式ax+by+c=0确定。在一个有界区域里半平面或半平面的交是一个凸多边形区域。n个半平面的交是一个至多n条边的凸多边形。半平面交的联机算法procedure intersection of half-planes输入:n个半平面H1,H2,Hn输出:H1H2Hn初始化区域A为整个平面依次用直线aix+biy+ci=0,i=1,2,n切割A,保留使不等式aix+biy+ci=0成立的部分输出 A复杂度O(n*n),联机算法。半平面交的分治算法假设可以在O(m+n)的时间内
2、将m个半平面的交和n个半平面的交合并,则可以有一种O(n*log(n)的分治算法求半平面的交。Procedure intersection of half-plane(D&C)输入:n个半平面H1,H2,Hn输出:H1H2Hn将H1Hn分成两个大小近似相等的集合在每个子问题中递归地计算半平面的交合并两个凸多边形区域形成H1H2Hn问题的关键是怎样在O(m+n)的时间里求两个凸多边形的交。将两个凸多边形沿顶点切割成至多O(m+n)个平行于y轴的梯形区域每两个梯形区域的交可以在O(1)时间内解决 凸多边形上方和下方的顶点分别构成一个x坐标递增序列。将这两个序列中的顶点分别作为一个链表存储,得到确定
3、凸多边形区域的上界和下界。描述凸多边形的方法凸多边形交的算法1:procedure intersection of convex polygon输入:两个凸多边形区域A、B输出:C=AB1.将两个凸多边形的顶点x坐标分类,得到序列xi,i=1p2.初始化区域C为空。3.处理x14.依次处理区域(xi,xi+1,i=1p-1。5.输出C凸多边形交的算法2:计算两个多边形在此区域里截得的梯形(可能退化)计算两个多边形在此区域里截得的梯形(可能退化):ABCD和和ABCD。4.2 求交点求交点ABAB、ABCD、CDAB,将存在的,将存在的点按点按x坐标排序,删除重复,添加到坐标排序,删除重复,添加
4、到C的上界中。的上界中。4.3 用类似的方法求用类似的方法求C的下界的下界4.4 计算此区域的右侧边界计算此区域的右侧边界(线段的交):线段的交):EF=BCBC。将。将E、F分别加入到分别加入到C的上界和下界中。的上界和下界中。4.依次处理区域(xi,xi+1,i=1p-1。AB(E)C(F)DABCD算法的复杂度 步1:由于A、B的上下界x坐标分别有序,可采用归并排序。复杂度O(m+n)步4:由于是按照x递增的顺序扫描这些区域,每条边界上的指针在整个过程中始终向右移动。两个多边形的每个顶点至多扫描一次。复杂度为O(m+n)。整个算法的时间复杂度为O(m+n)。Hotter and Cold
5、er(Waterloo local contest)问题1A和B在10*10的棋盘上进行一个游戏。A确定一个点P,B每回合移动一次。每次A都会告诉B,他当前所处的位置是离P更近了(Hot)还是更远了(Cold)。(原题还要考虑距离不变的情况。)请在A每次回答后,确定P点可能存在的区域的面积。问题1分析:假设B从C(x1,y1)移动到了D(x2,y2),A回答Hot。那么P(x,y)所处的位置就满足|CP|DP|,即:2(x2-x1)x+2(y2-y1)y+x12+y12-x22-y220 类似地,回答Cold对应于另一个不等式。初始时可能的区域是0,10*0,10。每回合后都用相应的不等式对应
展开阅读全文