bzoj 3007 拯救小雲公主

2021-08-20 18:27:46 字數 1487 閱讀 8770

description

英雄又即將踏上拯救公主的道路……

這次的拯救目標是——愛和正義的小雲公主。

英雄來到boss的洞穴門口,他一下子就懵了,因為面前不只是乙隻boss,而是上千只boss。當英雄意識到自己還是等級1的時候,他明白這就是乙個不可能完成的任務。

但他不死心,他在想,能不能避開boss去拯救公主呢,嘻嘻。

boss的洞穴可以看成乙個矩形,英雄在左下角(1,1),公主在右上角(row,line)。英雄為了避開boss,當然是離boss距離越遠越好了,所以英雄決定找一條路徑使到距離boss的最短距離最遠。

ps:英雄走的方向是任意的。

你可以幫幫他嗎?

當英雄找到了美麗漂亮的小雲公主,立刻就被boss包圍了!!!英雄緩閉雙眼,舉手輕揮,白光一閃後使用了回城卷軸,回到了城堡,但只有小雲公主回去了……因為英雄忘了進入回城的法陣了。

input

第一行,輸入三個整數,n表示boss的數目,row,line表示矩形的大小;

接下來n行,每行分別兩個整數表示boss的位置座標。

output

輸出乙個小數,表示英雄的路徑離boss的最遠距離,精確到小數點後兩位。

sample input

1 3 3

2 2

輸出樣例1:

1.00

輸入樣例2:

1 3 3

3 1輸出樣例2:

2.00

sample output

hint

100%資料,n<=3000;

通過畫圖考慮如何會困住英雄

然後像noip2017 乳酪一樣二分答案直接並查集就可以 或者bfs什麼都可以

#include

#include

#include

#include

#define eps 1e-3

using namespace std;

inline char gc()

return

*s++;

}inline int

read()

while(isdigit(ch)) x=x

*10+ch-'0',ch=gc();

return

x*f;

}const int n=3e3+10;

int fa[n],n,line,row;double x[n],y[n];

inline int find(int

x)inline void merge(int

x,int

y)inline double s

qr(double x)

inline bool check(double mid)

}return find(0)==find(n+1);

}int main()printf("%.2f\n",r);

return

0;}

BZOJ 3007 拯救小雲公主

英雄又即將踏上拯救公主的道路 這次的拯救目標是 愛和正義的小雲公主。英雄來到boss的洞穴門口,他一下子就懵了,因為面前不只是乙隻boss,而是上千只boss。當英雄意識到自己還是等級1的時候,他明白這就是乙個不可能完成的任務。但他不死心,他在想,能不能避開boss去拯救公主呢,嘻嘻。boss的洞穴...

BZOJ 3007 拯救小雲公主 最短路徑

題目傳送門 題目大意 給定乙個矩形和矩形內一些點,求一條左上角到右下角的路徑,使所有點和矩形邊界到這條路徑的最小距離最大。解法1 最小距離最大,想到二分,然後題目就轉化成 矩形內有一些圓形障礙,問左上角是否能到達右下角。直接bfs判斷即可。話說這種圖好像叫對偶圖啊 這種解法的優點就是比較好想,但是如...

SDOI2012 拯救小雲公主

題目最大的最小最小的最大 一看就非常的二分 考慮二分之後轉化成判定聯通問題 於是可以考慮乳酪 直接維護聯通好像很 gg 正難則反考慮維護不連通 什麼時候不連通,發現當左上角和右下角分在兩個塊裡面就涼了 當上和右邊或上和下邊聯通的時候左上角和右下角被分割在兩塊 另外兩種情況同理 於是並查集仿照乳酪維護...