L3 004 腫瘤診斷

2021-09-12 18:20:38 字數 1612 閱讀 3786

l3-004 腫瘤診斷 (30 分)

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

輸入第一行給出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個紅色的畫素都與藍色的畫素連通。

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

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發生了兩個段錯誤,不知道為為什麼,看別人部落格說是遞迴太多結果炸了。

**:

#include#include#includeusing namespace std;

typedef long long int ll;

ll n,m,l,t,s=0,st=0;//行 列 層數 大於等於t

int dp[65][1300][130]=;

int f[6][3]=,,,,,};//層 行 列

void dfs(int z,int x,int y)

}} int main()

} }for(int i=1;i<=l;i++) }}

} }cout

#include#include#include#includeusing namespace std;

typedef long long int ll;

int n,m,l,t;//行 列 層數 大於等於t

ll st=0,s=0;

int dp[65][1300][130]=;

int f[6][3]=,,,,,};//層 行 列

struct nodep,q;

queuemy;

bool check(int fz,int fx,int fy)

return false;

} void bfs(int z,int x,int y)

} } //s+=st;

} int main()

} }for(int i=1;i<=l;i++)}}

} }cout<

}

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是乙個整數閾值 若疑似腫...

L3 004 腫瘤診斷

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入格式 輸入第一行給出4個正整數 m n l t,其中m和n是每張切片的尺...