HNOI2007 最小矩形覆蓋

2022-02-28 14:59:00 字數 1123 閱讀 7504

給定一些點的座標,要求求能夠覆蓋所有點的最小面積的矩形,

輸出所求矩形的面積和四個頂點座標

第一行為乙個整數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行每...