AOJ 0531 座標離散化 bfs

2021-10-04 06:15:00 字數 1397 閱讀 4753

題意

傳送門 aoj 0531

矩形的寬和高 1 ≤ w, h ≤ 1000000 資料範圍大,要離散化處理。對於劃分區域,bfs 即可(遞迴實現可能棧溢位)。填充陣列 fld[x][y] 代表左下角頂點座標離散表示為 (x, y) 的 1 * 1 矩形。

#include

#include

#include

#include

#include

#include

#include

#define min(a,b) (((a) < (b)) ? (a) : (b))

#define max(a,b) (((a) > (b)) ? (a) : (b))

#define abs(x) ((x) < 0 ? -(x) : (x))

#define inf 0x3f3f3f3f

#define delta 0.85

#define eps 1e-3

#define pi 3.14159265358979323846

#define max_n 1005

using

namespace std;

typedef pair<

int,

int> p;

const

int dx[4]

=;const

int dy[4]

=;int w, h, n;

int x1[max_n]

, x2[max_n]

, y1[max_n]

, y2[max_n]

;bool fld[max_n *4]

[max_n *4]

;//座標壓縮

intcompress

(int

*x1,

int*x2,

int w)

}sort

(xs.

begin()

, xs.

end())

; xs.

erase

(unique

(xs.

begin()

, xs.

end())

, xs.

end())

;for

(int i =

0; i < n; i++

)return xs.

size()

;}intmain()

}}int res =0;

for(

int x =

0; x < w; x++)}

}}}printf

("%d\n"

, res);}

return0;

}

AOJ 0531 座標離散化

塗色 日文題目,自己翻譯成了中文 為了宣傳資訊競賽,要在長方形的三合板上噴油漆來製作招牌。三合板上不需要塗色的部分預先貼好了護板。被護板隔開的區域要塗上不同的顏色,比如上圖就應該塗上5種顏色。請編寫乙個程式計算塗色數量,輸入資料中,保證看板不會被護板全部遮住,並且護板的邊一定是水平或垂直的。輸入 第...

《挑戰程式設計競賽》P164 座標離散化

問題描述 w h的格仔畫了n條或垂直或水平寬度為1的直線,求出這些格仔被劃分成了多少個4連塊 上 下 左 右連通 輸入格式 第一行包含兩個整數 w和h,表示矩陣的列數和行數 行列編號都從1開始 第二行包含乙個整數n,表示有n條直線。接下來的n行,每行包含四個整數 x1,y1,x2,y2,表示一條直線...

NC 17881 座標離散化 並查集

題意 傳送門 nc 17881 題解考慮到程式 現的變數 x1,x2,x 3 x1,x2,x3 dots x1,x2,x3 取值較大,進行座標離散化。先處理相等的變數,用並查集維護 對於不相等的變數,判斷是否位於同乙個連通分量即可。include using namespace std define...