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