第五次培训-演算法-建中首页.DOCVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
95建中資訊科校內培訓 CK5925 黃上恩 Algorithm – Computational Geometry PAGE 1/ NUMPAGES 5 演算法:Math, Computational Geometry 95/1 工具:座標系 必備武器:向量 點Points 兩個點的距離 兩個點的向量 向量內積Dot Products 兩個向量和的內積值為 用途:判別角的大小、線段是否垂直 【例 SEQ pbn 1】給定三角形頂點A,B,C的座標,請你判斷ABC是否為直角三角形。 向量外積Cross Products 平面上的向量和外積之值為 = 外積值為0表示兩向量平行(collinear),值為正代表向量在的順時針方向。 【例 SEQ pbn 2】設O為座標原點,平面上有兩個點P,Q。有一個機器人站在原點,面對P,現在他要旋轉至面對Q,請問他應該向左轉或是向右轉? 【例 SEQ pbn 3】給定一條直線的線上兩點P,Q,以及另外兩個點A,B,請你判斷A,B是否在直線的同一側? 【例 SEQ pbn 4】某個人從點出發,依序沿著線段走,試問走到時,他左轉了多少次?右轉了多少次? 【例 SEQ pbn 5】給你一個線段以及一個點,試判斷此點是否在線段上。 【例 SEQ pbn 6】給你兩條線段以及,請你判斷這兩條線段是否相交。 [ACM 378,191] 方法一:外積方法 Case 1: 若 在線段異側 且 在線段異側 ,那麼線段相交。 Case 2P1P2P3 Case 2 P1 P2 P3 P4 Case 1 P1 P3 P4 P2 方法二:純解析法(解方程) 算出兩直線交點位置,判斷這個交點是否在兩條線段上。 【例 SEQ pbn 7】平面上給定n個點,請找出所有的三點共線。 [I2A 33.1-1,ACM 270] 多邊形Polygons 多邊形是由一些線段所組成的封閉折線。如果多邊形上的任兩條邊皆不相交,那麼此多邊形稱為單純多邊形(simple polygon)。一個單純多邊形當中任意兩頂點之連線線段若全部落在多邊形內,那麼我們稱這樣的多邊形為凸多邊形(convex polygon)。 在座標平面上計算多邊形的面積有簡單的公式可算。若一個多邊形的點依序為,其中。那麼此多邊形的面積為: 【例 SEQ pbn 8】依序給出一個n多邊形的n個頂點,請你判斷此多邊形是否為凸多邊形。 [ACM 10078] 【例 SEQ pbn 9】給定一個多邊形以及一個點P,請你判斷此點是否在多邊形內部。 [ACM 634] 基本想法:過P作一條射線L,若L與多邊形交於奇數個點,那麼P在內部;若為偶數個點則在外部。但是計算交點時要注意幾種情形: 這這… 這這…到底交幾個點啊 。 Q 偶數個交點,但是在內部。 P 掃描法 Line Sweeping 掃描法也是計算幾何上常見的解題方法之一。通常是把所有的點先行依照某個特定的順序排列(例如按照x座標排序),再由左至右或由右至左處理。 【例 SEQ pbn 10】平面上兩個點以及,我們說支配(Dominate)了若且唯若且。給定平面上的個點,請你找出所有的點,都不被其他個點支配。 [C名題百則5-16] 【例 SEQ pbn 11】給定一些只垂直或平行於座標平面的線段,請你判斷是否存在兩線段相交。 顯然我們可以用O(n2)的時間求出答案,但是利用掃描法以及二分搜尋法可以加快速度。 【例 SEQ pbn 12】給定一些線段,請你判斷這些線段之中是否有交點存在。 矩形覆蓋問題不只可以用Divide and Conquer做,還可以用掃描的。 【例 SEQ pbn 13】座標平面上給定一些矩形,求總覆蓋面積。 [USACO 3.1 Shaping Regions, ACM 688] 不只是橫向掃描,有時候讓直線轉一圈也是不錯的辦法。 【例 SEQ pbn 14】蛋糕上有一些草莓,其座標皆為整數。設蛋糕的中心是(0,0),請你切一刀過中心,並且讓兩邊蛋糕上的草莓數量相同。  [ACM 10167] 【例 SEQ pbn 15】在一個大草原上,有一個多邊形牧場,牧場的每個邊都有個編號。請問,當你站在的位置的時候能夠看到多少條邊?假設光直線前進。 [USACO 3.4 Closed Fences] 【例 SEQ pbn 16】第一象限上有一些線段,請問躺在x軸往上看,能看到多少線段? [94全國3] 凸包 Convex Hull 某個城市有許多重要的據點。現在因為軍事的需要,必須在城市外蓋城牆並至少把所有據點都圍在城內,請問城牆的最小總長度為何? 【簡化過的問題】平面上一些點所形成的集合Q,請找到最小的凸多邊形P使得每個Q中的點不是在P的邊上就是在P內部中。 【很基本的想

文档评论(0)

jinzhuang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档