乙個典型的bfs,注意bfs的for迴圈的continue,不是break.
題目描述:
在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。
輸入格式:
輸入第一行給出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**:
#include
#include
#include
#include
#include
using
namespace std;
int g[62]
[1300][
130]
;int m,n,l,t;
struct point
;int ans=0;
void
bfs(
int nx,
int ny,
int nz),,
,,,}
; queue<
struct point> q;
q.push
(temp)
; g[nz]
[nx]
[ny]=0
;while
(!q.
empty()
)}if(sum>=t)
// cout<}
intmain()
}}for(
int i=
1; i<=l; i++)}
}}printf
("%d\n"
,ans)
;return0;
}
PTA 7 13 求組合數 15分
本題要求編寫程式,根據公式c n m m n m n 算出從n個不同元素中取出m個元素 m n 的組合數。建議定義和呼叫函式fact n 計算n 其中n的型別是int,函式型別是double。輸入格式 輸入在一行中給出兩個正整.數m和n m n 以空格分隔。輸出格式 按照格式 result 組合數計...