PAT 腫瘤診斷 三維簡單廣搜

2021-07-11 21:13:31 字數 1527 閱讀 5906

在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。

輸入格式:

輸入第一行給出4個正整數:m、n、l、t,其中m和n是每張切片的尺寸(即每張切片是乙個m×n的畫素矩陣。最大解析度是1286×128);l(<=60)是切片的張數;t是乙個整數閾值(若疑似腫瘤的連通體體積小於t,則該小塊忽略不計)。

最後給出l張切片。每張用乙個由0和1組成的m×n的矩陣表示,其中1表示疑似腫瘤的畫素,0表示正常畫素。由於切片厚度可以認為是乙個常數,於是我們只要數連通體中1的個數就可以得到體積了。麻煩的是,可能存在多個腫瘤,這時我們只統計那些體積不小於t的。兩個畫素被認為是「連通的」,如果它們有乙個共同的切面,如下圖所示,所有6個紅色的畫素都與藍色的畫素連通。

figure 1

輸出格式:

在一行中輸出腫瘤的總體積。

輸入樣例:

3 4 5 2

1 1 1 1

1 1 1 1

1 1 1 1

0 0 1 1

0 0 1 1

0 0 1 1

1 0 1 1

0 1 0 0

0 0 0 0

1 0 1 1

0 0 0 0

0 0 0 0

0 0 0 1

0 0 0 1

1 0 0 0

輸出樣例:

26根據題目大意可以知道是統計乙個l * m * n大小的長方體中所有權值為1的聯通塊數量不少於t的總數有多少,直接根據題意模擬就可以。

#include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

const ll m = 1000005;

const double esp = 1e-6;

const double pi = 3.14159265359;

const ll inf = 0x3f3f3f3f;

using namespace std;

bool map[70][2345][234];

int m,n,l,t;

int dz=;

int dx=;

int dy=;

struct nodeant;

bool judge(int z,int x,int y)

int bfs(int z,int x,int y));

map[z][x][y] = false;

while(!q.empty()));}}

}return num >= t? num : 0;

}int main()

腫瘤診斷 三維BFS

腫瘤診斷 在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入第一行給出4個正整數 mm nn ll tt,其中mm和nn是每張切片的尺寸 即每張切片是乙個m times nm n的畫素矩陣。最大解析度是1286 times 1281286 ...

天梯賽 L3 004 腫瘤診斷 三維空間 廣搜

題目鏈結 在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入格式 輸入第一行給出4個正整數 m n l t,其中m和n是每張切片的尺寸 即每張切片是乙個m n的畫素矩陣。最大解析度是1286 128 l 60 是切片的張數 t是乙個整數閾值...

HDU 1253 勝利大逃亡 三維廣搜

解題思路 簡單的三維廣搜,把握好座標和陣列的關係。用了輸入外掛程式,然後加了幾個小優化 1.曼哈頓距離優化。2.終點如果不能走,直接結束 1.做了這題,對廣搜又有了一點認識。1.首先廣搜是對每乙個點只搜尋一次,每次搜尋乙個點後就不再走。所以不需要像以前那樣判斷是否已經入隊。2.搜尋時候要加上邊界,這...