OJ刷題記錄 問題 F 地質調查

2021-10-23 23:12:17 字數 1307 閱讀 7791

題目要求:

小明是乙個地質調查員,在他調查的地方突然出現個泉眼。由於當地的地勢不均勻,有高有低,他覺得這意味著這裡在不久的將來將會乙個小湖。水往低處流,凡是比泉眼地勢低或者等於的地方都會被水淹沒,地勢高的地方水不會越過。而且又因為泉水比較弱,當所有地勢低的地方被淹沒後,水位將不會**,一直定在跟泉眼一樣的水位上。現在給出小明掌握的地圖,所有的地圖都是乙個矩形,並按照座標系分成了乙個個小方格,小明測量除了每個方格的具體高度。我們假定當水留到地圖邊界時,不會留出地圖外,現在他想通過這些資料分析出,將來這裡將會出現乙個多大面積的湖。

輸入有若干組資料,每組資料的第一行有四個整數n,m,p1,p2(0解題思路:

典型的搜尋題。不外乎兩種方法:深度優先搜尋,廣度優先搜尋。廣度優先搜尋思路如下:從指定的矩陣起點開始,將符合條件的點的位置放入佇列中,依次從佇列中取出乙個位置,並搜尋這個位置的上下左右,搜到符合條件的位置,則計數器 + 1,並且賦予這個位置乙個特殊值,防止重複搜尋,直至隊列為空,搜尋完成。

通關**:

#include

#include

#include

using

namespace std;

intgetwaternum

(vectorint>> matrix,

int originx,

int originy)

;const

int by=

;int sum =1;

int height = matrix[originx]

[originy]

;int row = matrix.

size()

;int column = matrix[0]

.size()

; queueint,

int>> q;

q.emplace

(originx, originy);

matrix[originx]

[originy]=-

1;while

(!q.

empty()

)}}}

return sum;

}int

main()

matrix.

emplace_back

(arr);}

cout <<

getwaternum

(matrix, originx -

1, originy -1)

;return0;

}

OJ刷題記錄 問題 C 壓縮字串

題目要求 編寫乙個程式,輸入乙個字串,然後採用如下的規則對該字串當中的每一 個字元進行壓縮 1 如果該字元是空格,則保留該字元 2 如果該字元是第一次出現或第三次出現或第六次出現,則保留該字元 3 否則,刪除該字元。例如,若使用者輸入 occurrence 經過壓縮後,字元c的第二次出現被刪除 第一...

leetcode刷題記錄 餅乾問題

因為自己的基礎實在太薄弱了,所以打算每天在leetcode上刷幾道題來彌補基礎知識 455.分發餅乾 難度 容易 假設你是一位很棒的家長,想要給你的孩子們一些小餅乾。但是,每個孩子最多只能給一塊餅乾。對每個孩子 i 都有乙個胃口值 gi 這是能讓孩子們滿足胃口的餅乾的最小尺寸 並且每塊餅乾 j 都有...

刷題記錄 部分和問題

部分和問題 題目大意 給定幾個整數,判斷是否 可以從中選出若干數,使它們的和恰好為k。輸入要求 乙個整數n,接下來一行有n個數,代表a i 最後給出整數k。輸出要求 yse或no 輸入樣例1 4 1 2 4 7 13 輸出樣例1 yes 輸入樣例2 4 1 2 4 7 15 輸出樣例2 no 資料範...