備戰藍橋 地質調查

2021-10-09 07:32:32 字數 854 閱讀 9825

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

有若干組資料,每組資料的第一行有四個整數n,m,p1,p2(0輸出對應地圖中會有多少個格仔被水充滿。

3 5 2 3

3 4 1 5 1

2 3 3 4 7

4 1 4 1 1

此題可以用dfs(深度優先演算法)來解決,從泉眼位置出發分別向上,下,左,右四個方向進行遞迴,找到的位置如果高度小於泉眼的高度,那麼它就能夠被充滿,如果高度高於泉眼位置,則不能夠被充滿。

#include

using

namespace std;

int map[

100]

[100];

int n,m,sum =

0,center =0;

//sum記錄被填滿格仔的數量,center表示泉眼高度

void

find

(int x,

int y)

intmain()

} center = map[p1]

[p2]

;find

(p1,p2)

; cout

}

演算法題 地質調查 BFS

小明是乙個地質調查員,在他調查的地方突然出現個泉眼。由於當地的地勢不均勻,有高有低,他覺得這意味著這裡在不久的將來將會乙個小湖。水往低處流,凡是比泉眼地勢低或者等於的地方都會被水淹沒,地勢高的地方水不會越過。而且又因為泉水比較弱,當所有地勢低的地方被淹沒後,水位將不會 一直定在跟泉眼一樣的水位上。現...

備戰藍橋 the first question

問題描述 考慮如下的序列生成演算法 從整數 n 開始,如果 n 是偶數,把它除以 2 如果 n 是奇數,把它乘 3 加1。用新得到的值重複上述步驟,直到 n 1 時停止。例如,n 22 時該演算法生成的序列是 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1 人們...

備戰藍橋 the third question

問題描述 x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3.當排滿一行時,從下一行相鄰的樓往反方向排號。比如 當小區排號寬度為6時,開始情形如下 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 我們的問題是 已知了兩個樓號m和n,需要求出它們之間的...