BZOJ 3007 拯救小雲公主

2021-07-31 06:55:02 字數 1401 閱讀 3121

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

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

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

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

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

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

你可以幫幫他嗎?

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

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

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

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

2 2

輸出樣例1:

1.00

輸入樣例2:

1 3 3

3 1輸出樣例2:

2.00

100%資料,n<=3000;

可以用最小生成樹的kruskal,加邊直到發現第一條邊使左、上邊界與右、下邊界連通

#include 

#define n 3010

#define ll long long

#define sqr(x) ((x) * (x))

intread()

while (ch >= '0' && ch <= '9')

return

x * f;

}struct note

e[n * n];

int cnt;

struct node

mp[n];

int fa[n];

bool operator < (note a,note b)

int n,xm,ym;

int find(int

x)ll min(ll a,ll b)

int main()

; e[cnt++] = (note);

for (int j = 0; j < i; j++);}

}fa[n] = n;

fa[n + 1] = n + 1;

std::sort(e, e + cnt);

for (int i = 0; i < cnt; i++)}}

}

bzoj 3007 拯救小雲公主

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

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

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

SDOI2012 拯救小雲公主

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