在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。
輸入第一行給出4個正整數:mm、n
n、ll、t
t,其中mm和n
n是每張切片的尺寸(即每張切片是乙個m\times nm×
n的畫素矩陣。最大解析度是1286\times 12812
86×1
28);ll
(\le 60≤6
0)是切片的張數;t
t是乙個整數閾值(若疑似腫瘤的連通體體積小於t
t,則該小塊忽略不計)。
最後給出l
l張切片。每張用乙個由0和1組成的m\times nm×
n的矩陣表示,其中1表示疑似腫瘤的畫素,0表示正常畫素。由於切片厚度可以認為是乙個常數,於是我們只要數連通體中1的個數就可以得到體積了。麻煩的是,可能存在多個腫瘤,這時我們只統計那些體積不小於t
t的。兩個畫素被認為是「連通的」,如果它們有乙個共同的切面,如下圖所示,所有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
額,原來l指的是第三維,簡直了,我說怎麼來的6個方向。。。。qaq
三維的話就不能dfs了,遞迴層數太多了,所以可以用bfs來求聯通塊惹。
#include using namespace std;
const int maxn=500+7;
int n,m,l,t;
int tu[1286][128][60];
bool vis[1286][128][60];
int dx[6]= ;
int dy[6]= ;
int dz[6]= ;
struct node
};int cnt;
void bfs(int x,int y,int z)
}printf("%d\n",sum);
return 0;
}
腫瘤診斷(BFS)
在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入格式 輸入第一行給出4個正整數 m n l t,其中m和n是每張切片的尺寸 即每張切片是乙個m n的畫素矩陣。最大解析度是1286 128 l 60 是切片的張數 t是乙個整數閾值 若疑似腫...
L3 004 腫瘤診斷
在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入格式 輸入第一行給出4個正整數 m n l t,其中m和n是每張切片的尺寸 即每張切片是乙個m n的畫素矩陣。最大解析度是1286 128 l 60 是切片的張數 t是乙個整數閾值 若疑似腫...
L3 004 腫瘤診斷
在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入格式 輸入第一行給出4個正整數 m n l t,其中m和n是每張切片的尺寸 即每張切片是乙個m n的畫素矩陣。最大解析度是1286 128 l 60 是切片的張數 t是乙個整數閾值 若疑似腫...