原创 UVA 866 Intersecting Line Segments【線段規範相交簡單變形】

題目大意:給出一組線段,若每組線段有相交,則線段有交點處斷開,生成新的線段,求出最後所有線段數目解題策略:經過驗證,該題相交情況爲“規範相交”,難度大大降低。                     我的核心算法是:對一個線段來說,記錄它

原创 UVA 11783 Nail【簡單線段相交判斷 附YY加強版】

題目大意:給出一組木棍,若兩木棍相交(規範相交,非規範相交部分去除重疊部分)釘一個釘子;                     若有木棍和其他所有木棍不相交,釘兩個;最後固定所有木棍,所需釘子數; 解題策略:很水的一題,判斷線段相交,而

原创 UVA 191 Intersection POJ 1410【向量法判斷線段相交】

題目大意:給出線段起點,終點,之後給出矩形對角線的起點與終點,千萬別天真按照樣例就理解爲是左上和右下點,不一定! 解題策略:今天下午開始看計算幾何,初看題目第一反應是解析幾何,但是誤差太大,向量法完美解決本體,wa了好久,終於圓滿解決,具

原创 UVA 10902 POJ 2653 Pick-up sticks【線段規範相交】【圖】

題目大意:給出火柴(線段)的起點終點,有童鞋無聊按輸入順序扔火柴,求最後所有沒有被其他火柴壓住的火柴序號。 解題策略:第一反應想到的算法很簡單:                     1,火柴只能被後來的火柴可能壓住 <=> 火柴只能和

原创 UVA 132 Bumpy Objects【凸包變形】【附圖】

題目大意:拋過題意,直接抽取模型。                      平穩邊:                      1,多邊形上兩頂點之間的邊,與多邊形非規範相交(通俗點就是線段沿着凸包的輪廓走!)。            

原创 UVA 11045 My T-shirt suits me【二部圖是否全匹配+DFS鄰接矩陣實現】

題目大意:1,西服有六種款式{"XXL", "XL", "L", "M", "S", "XS"},給出西服總數,保證西服總數是衣服款式的整數倍,即每款西服數量相同;                     2,每個人可選擇兩款衣服,但一個

原创 UVA 820 Internet Bandwidth【EK算法模板 鄰接矩陣實現】

題目大意:  網絡流入門題,給出無向圖,求出無向圖最大流量。解題策略:   1,初學網絡流,用的是最基本的EK算法,樸素BFS不斷求最短增廣路。                        2,無向圖求最大流與平常的有向圖求最大流的區別

原创 UVA 10092 The Problem with the Problemsetter【二分圖最大匹配變形 鄰接矩陣實現最大匹配算法】

題目大意:一名老師出題,要求出N種題型,每個題型要求出多少題給出;                     現在有M道題(待選問題),每道題給出它可以被歸類的題型;                     問最後是否能按照要求出題,滿足要

原创 UVA 218 Moth Eradication【順時針輸出凸包頂點+凸包周長】

題目大意:如題順時針輸出凸包頂點,並且輸出凸包周長;                     注意:(1)題目告訴輸出時,凸包起點任意,但必須輸出兩次;                                 (2)每兩組數據之間

原创 UVA 11343 Isolated Segments【判斷線段相交】

題目大意:求出孤立線段數目(孤立線段:與其他線段不相交的線段)。 解題策略:還是向量法解決,但是因爲溢出的問題,wa了一宿,一度以爲算法不嚴密,大家注意溢出! /* UVA 11343 Isolated Segments A

原创 UVA 10078 The Art Gallery【輸入點是否全部在凸包上】

題目大意:抽離模型爲判定輸入點是否全部在凸包上,是輸出“No”,否輸出“Yes”。解題策略:求出凸包,直接判定“棧”中頂點數top與nodeNum的關係即可(一開始以爲要用到判定點是否在多邊形內這個算法,後來發現不需要) /* U

原创 UVA 10002 Center of Masses【求凸包重心】

題目大意:給出凸多邊形上點(注意!不是按照一定順序給出,可能是亂序),求該凸多邊形的質心,另外當凸多邊形頂點數小於3,結束輸入。 解題策略:凸多邊形頂點無序給出—>求出凸包(使凸多邊形以頂點逆序保存)—>求凸包質心(由於二維幾何平面質量均

原创 素數快速篩選法

預處理素數快速篩選法: #include <iostream> #include <cmath> #include <cstring> using namespace std; const int maxn = 100001; int a

原创 UVA 378 Intersecting Lines POJ 1249【直線位置情況簡單判定】

題目大意:判斷一組兩條直線(是直線不是線段)位置情況:                     1,相交,按照格式輸出交點;                      2,平行,輸出“NONE“;                    

原创 UVA 11373 Happy Birthday【計算/解析幾何綜合】

題目大意:對於蛋糕(圓柱體),切兩刀(分別給出兩點,確定一刀所在直線),分成四塊蛋糕,求出最大蛋糕和最小蛋糕的體積。                     切刀的交點不一定是蛋糕圓心,確定每一刀方向的兩點也不一定在圓上; 解題策略:見代