給定一些點的座標,要求求能夠覆蓋所有點的最小面積的矩形,
輸出所求矩形的面積和四個頂點座標
第一行為乙個整數n(3<=n<=50000)
從第2至第n+1行每行有兩個浮點數,表示乙個頂點的x和y座標,不用科學計數法
第一行為乙個浮點數,表示所求矩形的面積(精確到小數點後5位),
接下來4行每行表示乙個頂點座標,要求第一行為y座標最小的頂點,
其後按逆時針輸出頂點座標.如果用相同y座標,先輸出最小x座標的頂點
6 1.0 3.00000
1 4.00000
2.0000 1
3 0.0000
3.00000 6
6.0 3.0
18.00000
3.00000 0.00000
6.00000 3.00000
3.00000 6.00000
0.00000 3.00000
說實話這個題筆者做的實在是非常難受身心俱疲。首先之前打過一遍然後掛了,怎麼調都調不出來之後又重構**,然後又是各種調不出來,之後過了樣例,又是各種wa,什麼特判都加完了之後終於是a掉了。。。
總體思路大致是這個樣子,經過一系列奇奇怪怪的證明之後我們可以發現,我們要求的那個矩形一定有一條邊在這些點的凸包的邊上,然後旋轉卡殼列舉邊,求出來就可以了,**非常難搞,細節非常多,筆者一開始被卡掉了0.0001的精度,結果找著黃學長的一頓亂改,結果改到最後,快長得一樣了。。。。
#include#include#include#include#include#include#define ll long long
#define inf 50000000
#define re register
#define maxn 50005
#define eps 1e-8
using namespace std;
double ans=1e60;
int n,top;
struct p
p(double _x,double _y):x(_x),y(_y){}
friend bool operator<(p a,p b)
inline void graham()
HNOI2007 最小矩形覆蓋
給定一些點的座標,要求求能夠覆蓋所有點的最小面積的矩形,輸出所求矩形的面積和四個頂點座標 輸入格式 第一行為乙個整數n 3 n 50000 從第2至第n 1行每行有兩個浮點數,表示乙個頂點的x和y座標,不用科學計數法 輸出格式 第一行為乙個浮點數,表示所求矩形的面積 精確到小數點後5位 接下來4行每...
HNOI2007 最小矩形覆蓋
嘟嘟嘟 這道題我從昨天晚上5點做到今天下午3點半 差點就瘋了。真是一道計算幾何好題呀!剛開始我以為矩形與座標軸平行,感覺省選題竟然這麼水。但是看完樣例後發現我錯了 首先都知道要求凸包。寫 的時候一定要非常謹慎。對於重合或共線的點都要從棧中彈去,否則在後面的求矩形面積的時候會除以 0 然後就會想我一樣...
HNOI2007 最小矩形覆蓋
給定一些點的座標,要求求能夠覆蓋所有點的最小面積的矩形,輸出所求矩形的面積和四個頂點座標 輸入格式 第一行為乙個整數n 3 n 50000 從第2至第n 1行每行有兩個浮點數,表示乙個頂點的x和y座標,不用科學計數法 輸出格式 第一行為乙個浮點數,表示所求矩形的面積 精確到小數點後5位 接下來4行每...