題意
傳送門 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...