腫瘤診斷 三維BFS

2021-07-27 05:50:03 字數 1626 閱讀 2293

腫瘤診斷 

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

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

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

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

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
不知道這題用dfs為什麼會有兩個案例段錯誤,難道是爆了系統棧?知道的大神能不能告訴一下,謝了。。。
dfs**:
#include #include #include #include #include #include #include #include #include #include #include using namespace std; int pic[80][1300][150]; bool vis[80][1300][150]; int m,n,h,t; int cnt; int di[10]=; int dj[10]=; int dk[10]=; void dfs(int i,int j,int k)  } int main()  } } } } printf("%d\n",ans); return 0; }
bfs**:

#include #include #include #include #include #include #include #include #include #include #include using namespace std; int pic[80][1300][150]; bool vis[80][1300][150]; int m,n,h,t; int cnt; int di[10]=; int dj[10]=; int dk[10]=; int ans; struct note  }; typedef struct note note; queueq; void bfs(int i,int j,int k)  } } } } printf("%d\n",ans); return 0; }

腫瘤診斷(BFS)

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

PAT 腫瘤診斷 三維簡單廣搜

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

bfs 三維標記

做訓練賽遇到的一道題,感覺很好。大致題意 現在給你乙個地圖n m,代表是空格子,代表是有柱子阻隔。現在你站在a點,要走到b點。走的時候要遵循乙個規則 必須走相鄰的格仔,如果相鄰的格仔為有柱子格仔,那麼這個格仔與有柱子的格仔相鄰的邊 如果乙個有柱子的格仔的兩條或者多條不同的邊 了,那麼這個格仔就會變成...