藍橋杯每日一題(21) 擴散(python)

2021-10-18 19:29:43 字數 1181 閱讀 3515

小藍在一張無限大的特殊畫布上作畫。

這張畫布可以看成乙個方格圖,每個格仔可以用乙個二維的整數座標表示。

小藍在畫布上首先點了一下幾個點:(0, 0), (2020, 11), (11, 14), (2000, 2000)。

只有這幾個格仔上有黑色,其它位置都是白色的。

每過一分鐘,黑色就會擴散一點。具體的,如果乙個格仔裡面是黑色,它

就會擴散到上、下、左、右四個相鄰的格仔中,使得這四個格仔也變成黑色

(如果原來就是黑色,則還是黑色)。

請問,經過 2020 分鐘後,畫布上有多少個格仔是黑色的。

本題解法利用了曼哈頓距離思路求解

注:本題資料量較大,求解時間較長

通過讀題易理解:

只要從四個點中任意一點到其他位置的曼哈頓距離小於或等於2020的點均可以覆蓋到

(也就是均會被塗黑)

正式思路:

由於地圖無限大

所以圖中的座標也可以為負值

但是最小的覆蓋為-2020(0 - 2020)到4040(2020 + 2020)

為了避免出錯遺漏可以設定 更大的範圍遍歷

若滿足則黑色點的個數加一

同時為了避免重複

當滿足條件時加入一次後退出迴圈

不繼續判斷

x =[0

,2020,11

,2000

]y =[0

,11,14

,2000

]res =

0for i in

range(-

2020

,4041):

for j in

range(-

2020

,4041):

for z in

range(0

,4):

ifabs

(x[z]

- i)

+abs

(y[z]

- j)

<=

2020

: res +=

1break

print

(res)

藍橋杯 每日一題 Sine之舞

最近fj為他的奶牛們開設了數學分析課,fj知道若要學好這門課,必須有乙個好的三角函式基本功。所以他準備和奶牛們做乙個 sine之舞 的遊戲,寓教於樂,提高奶牛們的計算能力。不妨設an sin 1 sin 2 sin 3 sin 4 sin n sn a1 n a2 n 1 a3 2 an 1 fj想...

藍橋杯python每日一題 序列求和

試題 入門訓練 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 求1 2 3 n的值。輸入格式 輸入包括乙個整數n。輸出格式 輸出一行,包括乙個整數,表示1 2 3 n的值。樣例輸入 4樣例輸出 10樣例輸入 100說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在...

藍橋杯python每日一題 查詢整數

試題 基礎練習 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。輸入格式 第一行包含乙個整數n。第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。第三行包含乙個整數a,為待查詢的數。輸出格式 ...