Uva 12171 離散化加BFS

2021-09-14 04:44:32 字數 1018 閱讀 2905

對每乙個長方體的座標離散化處理 假想空氣對空氣bfs求聯通

#includeusing namespace std;

const int maxn = 50 + 5;

const int maxc = 1000 + 1;

int n;

int x0[maxn], y0[maxn], z0[maxn], x1[maxn], y1[maxn], z1[maxn];

int xs[maxn*2], ys[maxn*2], zs[maxn*2], nx, ny, nz;

int color[maxn*2][maxn*2][maxn*2];

int dx = ;

int dy = ;

int dz = ;

struct cell

void setvis() const

int volume() const

cell neighbor(int i) const

bool valid() const }}

v = maxc*maxc*maxc - v; //雕塑體積 == 整個空間的體積-雕塑外圍體積

}void discretize(int* x, int& n) //對每一維進行離散化

int id(int* x, int n, int x0) //找到原座標離散化後的新座標

int main()

discretize(xs, nx), discretize(ys, ny), discretize(zs, nz);//排序加去重

memset(color, 0, sizeof(color)); //染色

for (int i = 0; i < n; i++) //對於每乙個長方體,以左閉右開的方式標記,以點帶體}}

}int s, v;

floodfill(s, v);

printf("%d %d\n", s, v);

}return 0;

}

UVA 11624(簡單bfs 初始化)

uva題目鏈結 vj題目銜接 題目大意 火每次四個方向延伸,問人能否跑出這個迷宮,也就是人能走的格仔必須在火延伸到那裡之前。注意 fire火堆並不是只有乙個,可以有多個fire。但j只有乙個。思路 廣搜每個f,初始化time陣列,也就是為後面j是否可以走到這個格仔上做準備 也就是stemp x y ...

HDU5124,線段樹加離散化

水題乙個,但是由於自己太弱還是寫了很久,線段樹的理解不是很好,到現在也不是很懂pushdown的精髓,只會照貓畫虎,接下來的一段日子裡打算做水題的同時穿插做一些資料結構。這道題的離散化很簡單,就是對於出現過的點排序即可,可以用map之類的隨便搞一下,據說這個題有貪心演算法,希望學習一下。最後也是壓時...

AOJ 0531 座標離散化 bfs

題意 傳送門 aoj 0531 矩形的寬和高 1 w,h 1000000 資料範圍大,要離散化處理。對於劃分區域,bfs 即可 遞迴實現可能棧溢位 填充陣列 fld x y 代表左下角頂點座標離散表示為 x,y 的 1 1 矩形。include include include include inc...