原创 POJ 1228 (凸包)

題意看了很久才懂。。 判斷給定的凸包中的某些點能否唯一確定一個原凸多邊形,可以推知如果凸包上相鄰兩頂點之間沒有其他頂點的話,則不能唯一確定凸多邊形(類似於兩點確定一條直線) #include<stdio.h> #include<math.

原创 POJ 2398 Toy Storage(叉乘,水)

和POJ 2318 幾乎一模一樣,只是多了個排序,然後輸出格式改了下。。 叉積判斷線段(向量)位置關係 #include <cstdio> #include <cstring> #include <algorithm> using na

原创 POJ 1556 The Doors(判斷線段相交 + 最短路)

RT。。題意和思路不是很複雜。。 沒有注意 n = 0 的情況 WA 了幾發。。 #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #i

原创 POJ 1696 Space Ant(捲包裹)

這題嚴格來說不是凸包的題,只是用到了凸包的捲包裹的思想。。 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespa

原创 POJ 1269 Intersecting Lines(直線位置關係,水)

利用叉積判斷直線位置關係,叉積3爲 0 則共線或平行,否則相交,設交點 O 則有 P1O × OP2 = P3O × OP4,可以推出公式。 #include <cstdio> #include <cstring> #include <

原创 POJ 1584 A Round Peg in a Ground Hole(判斷凸多邊形,點到線段最短距離)

圓在多邊形內的條件是:圓心在多邊形內,且圓心到個線段最短距離小於半徑。 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #in

原创 POJ 1265 Area (有向面積, pick 定理)

<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="cpp"><span style="font-family:

原创 POJ 3449 Geometric Shapes (多邊形相交)

這題主要是給正方形對角線兩個點求另外兩個點:不用旋轉什麼的,可以由點之間的關係推得。比較好推,具體見代碼。 剩下的思路比較簡單,輸入輸出有點麻煩,尤其是 A and C 和 A, B, and C 這種的區別。。。 #include <

原创 POJ 3335 Rotating Scoreboard (半平面交)

顯然如果對所有牆壁求半平面交結果不是 0 的話就是 YES,否則就是 NO 。 另外數據中點是順時針給出的,題裏貌似沒有說明。。 #include <stdio.h> #include <string.h> #include <iostr

原创 POJ 2653 Pick-up sticks(判斷線段相交)

題意:按順序扔一些木棒(n < 100001),問最後在最上面的木棒(m < 1001)。 這題能過完全是因爲數據弱。 至少我的算法是 O(n * m) 級別或者以上的。。。 本來不敢寫,覺得會TLE,但是看到網上差不多的算法也過了,於是

原创 POJ 1873 (枚舉子集+凸包)

很久以前的 world final 裏的水題。。 枚舉子集 + 凸包,有幾個地方特判一下。。 我的做法比較暴力。。應該有更好的算法,比如在 graham 算法的基礎上稍加修改。。 #include <cstdio> #include <c

原创 1066 Treasure Hunt (判斷線段相交)

題意:100 * 100 的封閉房子,有一些貫穿整個房子的牆(從一條邊到另一條邊),把房子分成很多小室,也把牆分成很多段。寶物在一個小室中,可以在任意一段牆的問最少開幾扇門,可以拿到寶物。 思路:(還是參考了題解。。自己想的思路很麻煩。。

原创 POJ 2954 Triangle(pick定理,邊上整點數)

RT。。 #include <cmath> #include <cstdio> #include <cstring> #include <utility> using namespace std; const double eps =

原创 POJ 3348 Cows (凸包面積)

#include<cstdio> #include<cmath> #include<algorithm> #include<iostream> using namespace std; const int MAXN=1000; const

原创 POJ 1654 Area (有向面積求多邊形面積)

#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; struct Point { dou