PTA 7 13 腫瘤診斷 2020 天梯訓練)

2021-10-10 19:09:57 字數 1406 閱讀 4764

乙個典型的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 組合數計...