[Z]POJ 計算幾何入門題目推薦[轉PKKJ]

http://www.cnblogs.com/eric-blog/archive/2011/05/31/2064785.html

http://hi.baidu.com/novosbirsk/blog/item/723a9727a9ab8804918f9dca.html
其實也談不上推薦,只是自己做過的題目而已,甚至有的題目尚未AC,讓在掙扎中。之所以推薦計算幾何題,是因為,本人感覺ACM各種算法中計算幾何算是比 較實際的算法,在很多領域有著重要的用途(例如本人的專業,GIS)。以后若有機會,我會補充、完善這個列表。

計算幾何題的特點與做題要領:
1.大部分不會很難,少部分題目思路很巧妙
2.做計算幾何題目,模板很重要,模板必須高度可靠。
3.要注意代碼的組織,因為計算幾何的題目很容易上兩百行代碼,里面大部分是模板。如果代碼一片混亂,那么會嚴重影響做題正確率。
4.注意精度控制。
5.能用整數的地方盡量用整數,要想到擴大數據的方法(擴大一倍,或擴大sqrt2)。因為整數不用考慮浮點誤差,而且運算比浮點快。

一。點,線,面,形基本關系,點積叉積的理解

POJ 2318 TOYS(推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2318
POJ 2398 Toy Storage(推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2398
一個矩形,有被若干直線分成N個格子,給出一個點的坐標,問你該點位于哪個點中。
知識點:其實就是點在凸四邊形內的判斷,若利用叉積的性質,可以二分求解。

POJ 3304 Segments
http://acm.pku.edu.cn/JudgeOnline/problem?id=3304
知識點:線段與直線相交,注意枚舉時重合點的處理

POJ 1269 Intersecting Lines?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1269
知識點:直線相交判斷,求相交交點

POJ 1556 The Doors (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1556
知識點:簡單圖論+簡單計算幾何,先求線段相交,然后再用Dij求最短路。

POJ 2653 Pick-up sticks?
http://acm.pku.edu.cn/JudgeOnline/problem?id=2653
知識點:還是線段相交判斷

POJ 1066 Treasure Hunt?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1066
知識點:線段相交判斷,不過必須先理解“走最少的門”是怎么一回事。

POJ 1410 Intersection?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1410
知識點:線段與矩形相交。正確理解題意中相交的定義。
詳見:http://hi.baidu.com/novosbirsk/blog/item/68c682c67e8d1f1d9d163df0.html

POJ 1696 Space Ant (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1696
德黑蘭賽區的好題目。需要理解點積叉積的性質

POJ 3347 Kadj Squares?
http://acm.pku.edu.cn/JudgeOnline/problem?id=3347
本人的方法極度猥瑣。復雜的線段相交問題。這個題目是計算幾何的擴大數據運算的典型應用,擴大根號2倍之后就避免了小數。

POJ 2826 An Easy Problem?! (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2826
問:兩條直線組成一個圖形,能容納多少雨水。很不簡單的Easy Problem,要考慮所有情況。你不看discuss看看能否AC。(本人基本不能)提示一下,水是從天空垂直落下的。

POJ 1039 Pipe?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1039
又是線段與直線相交的判斷,再加上枚舉的思想即可。

POJ 3449 Geometric Shapes?
http://acm.pku.edu.cn/JudgeOnline/problem?id=3449
判斷幾何體是否相交,不過輸入輸出很惡心。
此外,還有一個知識點,就是給出一個正方形(邊不與軸平行)的兩個對角線上的頂點,需要你求出另外兩個點。必須掌握其方法。

POJ 1584 A Round Peg in a Ground Hole?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1584
知識點:點到直線距離,圓與多邊形相交,多邊形是否為凸

POJ 2074 Line of Sight (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2074
與視線問題的解法,關鍵是求過兩點的直線方程,以及直線與線段的交點。數據有一個trick,要小心。

二。凸包問題

POJ 1113 Wall?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1113
知識點:赤裸裸的凸包問題,凸包周長加上圓周。

POJ 2007 Scrambled Polygon?
http://acm.pku.edu.cn/JudgeOnline/problem?id=2007
知識點:凸包,按極角序輸出方案

POJ 1873 The Fortified Forest (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1873
World Final的水題,先求凸包,然后再搜索。由于規模不大,可以使用位運算枚舉。
詳見:http://hi.baidu.com/novosbirsk/blog/item/333abd54c7f22c52574e0067.html

POJ 1228 Grandpa's Estate (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1228
求凸包頂點數目,很多人求凸包的模板是會多出點的,雖然求面積時能得到正確答案,但是在這個題目就會出問題。此外,還要正確理解凸包的性質。

POJ 3348 Cows?
http://acm.pku.edu.cn/JudgeOnline/problem?id=3348
凸包面積計算

三。面積問題,公式問題

POJ 1654 Area?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1654
知識點:利用有向面積(叉積)計算多邊形面積

POJ 1265 Area?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1265
POJ 2954 Triangle?
http://acm.pku.edu.cn/JudgeOnline/problem?id=2954
Pick公式的應用,多邊形與整點的關系。(存在一個GCD的關系)

四。半平面交

半平面交的主要應用是判斷多邊形是否存在核,還可以解決一些與線性方程組可行區域相關的問題(就是高中時的那些)。

POJ 3335 Rotating Scoreboard
http://acm.pku.edu.cn/JudgeOnline/problem?id=3335
POJ 3130 How I Mathematician Wonder What You Are!?
http://acm.pku.edu.cn/JudgeOnline/problem?id=3130
POJ 1474 Video Surveillance
http://acm.pku.edu.cn/JudgeOnline/problem?id=1474
知識點:半平面交求多邊形的核,存在性判斷

POJ 1279 Art Gallery?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1279
半平面交求多邊形的核,求核的面積

POJ 3525 Most Distant Point from the Sea (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3525
給出一個多邊形,求里面的一個點,其距離離多邊形的邊界最遠,也就是多邊形中最大半徑圓。
可以使用半平面交+二分法解。二分這個距離,邊向內逼近,直到達到精度。

POJ 3384 Feng Shui (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3384
半平面交實際應用,用兩個圓覆蓋一個多邊形,問最多能覆蓋多邊形的面積。
解法:用半平面交將多邊形的每條邊一起向“內”推進R,得到新的多邊形,然后求多邊形的最遠兩點。

POJ 1755 Triathlon (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1755
半平面交判斷不等式是否有解。注意不等式在轉化時正負號的選擇,這直接影響到半平面交的方向。

POJ 2540 Hotter Colder?
http://acm.pku.edu.cn/JudgeOnline/problem?id=2540
半平面交求線性規劃可行區域的面積。

POJ 2451 Uyuw's Concert
http://acm.pku.edu.cn/JudgeOnline/problem?id=2451
Zzy專為他那篇nlogn算法解決半平面交問題的論文而出的題目。

五。計算幾何背景,實際上解題的關鍵是其他問題(數據結構、組合數學,或者是枚舉思想)
若干道經典的離散化+掃描線的題目,ACM選手必做題目

POJ 1151 Atlantis (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1151
POJ 1389 Area of Simple Polygons
http://acm.pku.edu.cn/JudgeOnline/problem?id=1389
矩形離散化,線段樹處理,矩形面積求交

POJ 1177 Picture (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1177
矩形離散化,線段樹處理,矩形交的周長,這個題目的數據比較強。線段樹必須高效。?

POJ 3565 Ants (推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3565
計算幾何中的調整思想,有點像排序。要用到線段相交的判斷。
詳見:http://hi.baidu.com/novosbirsk/blog/item/fb668cf0f362bec47931aae2.html

POJ 3695 Rectangles????
http://acm.pku.edu.cn/JudgeOnline/problem?id=3695
又是矩形交的面積,但是由于是多次查詢,而且矩形不多,使用組合數學中的容斥原理解決之最適合。線段樹是通法,但是除了線段樹,還有其他可行的方法。

POJ 2002 Squares????
http://acm.pku.edu.cn/JudgeOnline/problem?id=2002
枚舉思想,求平面上若干個點最多能組成多少個正方形,點的Hash

POJ 1434 Fill the Cisterns!(推薦)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1434
一開始發昏了,準備弄個線段樹。其實只是個簡單的二分。

六。隨機算法
POJ 2420 A Star not a Tree??
http://acm.pku.edu.cn/JudgeOnline/problem?id=2420
多邊形的費馬點。所謂費馬點,就是多邊形中一個點P,該點到其他點的距離之和最短。四邊形以上的多邊形沒有公式求費馬點,因此可以使用隨機化變步長貪心 法。
詳見:http://hi.baidu.com/novosbirsk/blog/item/75983f138499f825dd54019b.html

七。解析幾何
這種題目本人不擅長,所以做得不多,模板很重要。當然,熟練運用叉積、點積的性質還是很有用的。
POJ 1375 Intervals?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1375
知識點:過圓外一點求與圓的切線

POJ 1329 Circle Through Three Points????
http://acm.pku.edu.cn/JudgeOnline/problem?id=1329
求三角形外接圓

POJ 2354 Titanic
http://acm.pku.edu.cn/JudgeOnline/problem?id=2354
求球面上兩個點的距離,而且給的是地理經緯坐標。

POJ 1106 Transmitters
http://acm.pku.edu.cn/JudgeOnline/problem?id=1106
角度排序,知道斜率求角度,使用atan函數。

POJ 1673 EXOCENTER OF A TRIANGLE
http://acm.pku.edu.cn/JudgeOnline/problem?id=1673
可以轉化為三角形的垂心問題。

八。旋轉卡殼

POJ 2187 Beauty Contest?
http://acm.pku.edu.cn/JudgeOnline/problem?id=2187
凸包求最遠點對。可以暴力枚舉,也可以使用旋轉卡殼。

POJ 3608 Bridge Across Islands(難)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3608
兩個凸包的最近距離。本人的卡殼始終WA。郁悶。

九。其他問題
POJ 1981 Circle and Points?
http://acm.pku.edu.cn/JudgeOnline/problem?id=1981
求單位圓最多能覆蓋平面上多少個點

轉載于:https://www.cnblogs.com/waytofall/archive/2012/09/03/2669703.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379355.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2013年 833c語言程序 江南大學 (A卷)

1.編寫程序實現求兩個整數最大公約數和最小公倍數. 方法一:輾轉相除法 算法思路:兩個整數a,b,其中a>b,求其最大公約數和最小公倍數 步驟① a%bc,其中c為余數 步驟② 若余數c為0,即a可以把b給整除,也就是說這里的b就是其最大公…

二十幾歲失敗的原因

1.缺乏人生目標。在研究過的人們中,9.98%的人沒有"人生目標",這恐怕是人們失敗的最大原因。  2.自學能力不足。歷史上所謂掌握最高教育的人,幾乎都是"自學型"的。所謂"有教育"的人,不能只看成是有…

C程序生成一定范圍內的隨機數

Random numbers just numbers that lie within a range and any of the numbers can occur. 隨機數只是在一個范圍內的數字,任何數字都可能出現。 In programming, we come through a lot of scenarios where we need to generate random numbers. Like for dice g…

提示丟失libgcc_s_dw2-1.dll問題

QT使用MinGW編譯器編譯中的的執行文件,執行問題 將qt中安裝的mingw編碼器的路徑添加到環境變量path (D:\Qt\Qt5.10.1\5.10.1\mingw53_32\bin)

第1章 數據庫系統概述

第1章 數據庫系統概述 1.1 數據庫系統簡介 數據庫技術的發展歷史 人工管理階段文件系統階段數據庫系統階段

淺談多線程和異步

最近很忙,因此拿出時間來寫博客也算是忙里偷閑了,繼承前面的一貫風格,繼續淺談胡侃。  最近在項目中遇到了Socket異步網絡傳輸的問題,所以沉下心來整理下。于是,先問了下度娘,結果找到了園友志良的一篇文…

查看Sql Server的log文件大小

SELECT DB_NAME(database_id) AS DatabaseName,Name AS Logical_Name,Physical_Name, (size*8)/1024 SizeMBFROM sys.master_filesWHERE DB_NAME(database_id) AdventureWorksGO 轉載于:https://www.cnblogs.com/top5/archive/2010/03/02/1676776.html

python調用帶參函數_Python | 帶有示例的函數調用類型

python調用帶參函數There are following types of function calls in python: python中有以下類型的函數調用: Call by value 按價值致電 Call by reference 通過參考電話 1)按價值致電 (1) Call by value ) When, we call a function with the values i.e. pass …

ffmpeg 命令添加文字水印

使用ffplay 預覽一下效果: ffplay -i cctvhttp.flv -vf “drawtextfontsize100:fontfileArial.ttf:tex t‘hello world’:x20:y20:fontcolorblue:alpha0.5” -x 640 -y 480 使用ffmpeg保存為文件 : ffmpeg -i cctvhttp.flv -vf “drawtextfontsize10…

jquery彈出層

這是一個彈出層的插件&#xff0c;有時候做東西的&#xff0c;經常會用到了&#xff0c;所以在次發一下&#xff0c;和大家分享一下&#xff01; [task]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/x…

MUL與IMUL區別(微機原理與接口技術 第2版)課后習題3.14、P123

MUL與IMUL的詳細區別 乘數位數隱含的被乘數乘積的存放位置舉例8位ALAX中MUL BL16位AXDX與AX中&#xff08;DX存放高16位、AX存放低16位&#xff09;MUL BX 課本P97例題 一&#xff09;、將以下指令中的立即數看作是無符號數實現相乘: MOV AL,0B4H ;ALB4H180 解釋以下&…

SDL_main導致main找不到入口

SDL main的錯誤 引用SDL.h就會報這個錯誤 因為SDL 將main 宏定義為 SDL_main,所以會找不到main入口 可以使用#undef main取消這個宏定義

Java MathContext類| hashCode()方法與示例

MathContext類的hashCode()方法 (MathContext Class hashCode() method) hashCode() method is available in java.math package. hashCode()方法在java.math包中可用。 hashCode() method is used to get the hash code value of this MathContext. hashCode()方法用于獲取此M…

實驗8 SQL Server 的存儲過程

實驗8 SQL Server 的存儲過程一、實驗目的 1.掌握使用T-SQL編程的方法 2.掌握使用T-SQL語句創建一個存儲過程并驗證 3.掌握創建和執行帶參數的存儲過程 4.熟練使用系統存儲過程、系統函數 二、實驗要求 1.創建一個不帶參數的存儲過程。 2.創建一個帶參數的存儲過程p_count。 三…

Oracle ——如何確定性能差的 SQL

http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/TSQ7/Default.aspx 本文主要說明在應用程序內書寫和調優 SQL 語句。假設&#xff0c;你已經知道你應用程序中的哪些 SQL 語句需要注意。事實上&#xff0c;這不太容易。那么&#xff0c;我們如何…

C#中的委托和事件(續)

http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html 歡迎瀏覽本文的后續文章&#xff1a; C#中的委托和事件(續)PDF 瀏覽&#xff1a;http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf文中代碼在VS2005下通過&#xff0c;由于VS2003(.Ne…

Java LocalDate類| minusYears()方法與示例

LocalDate類minusYears()方法 (LocalDate Class minusYears() method) minusYears() method is available in java.time package. minusYears()方法在java.time包中可用。 minusYears() method is used to subtract the given years from this LocalDate and return the LocalD…

ffmpeg 命令添加圖片水印

使用ffplay預覽一下&#xff1a; ffplay -i cctvhttp.flv -vf “moviewatermark.png[watermark];[in][watermark]overlay x10:y10[out]” -x 640 -y 480 參數&#xff1a; 有兩個過濾器movie\overlay movie&#xff1a;讀取watermark.png輸出 [watermark]可以理解自定義的的變…

實驗9 SQL Server 的觸發器

實驗9 SQL Server 的觸發器一、實驗目的 1.了解觸發器的觸發過程和類型 2.通過執行SQL腳本&#xff0c;掌握創建觸發器并測試觸發器 3.掌握通過使用觸發器維護數據完整性的方法。 二、實驗要求 1.按指定要求創建觸發器。 三、實驗步驟 1.創建一個名為tr_age的觸發器&#xff0…

struts2學習筆記二--準備struts2的學習和開發環境

準備struts2的學習和開發環境1 導包2 參照開發包自帶的例子在web.xml文件中配置3 參照開發包自帶的例子編寫Action類和配置struts.xml文件<struts><package name"demo" namespace"/hello/word"><action name"test" class"cn…