題目:
小藍在一張無限大的特殊畫布上作畫。看到這道題的時候就想到了之前在力扣上寫的一道題就是(斜槓劃分得那個),先是建立乙個足夠大的由零組成得圖,然後再把1當作變黑得格仔,統計1的個數作為結果。但是寫完了之後**跑不出來,後來自己把資料都改小了之後就能了。還有乙個人說他自己跑了兩個多小時還是四個小時跑出來了的,我沒等。。。這張畫布可以看成乙個方格圖,每個格仔可以用乙個二維的整數座標表示。
小藍在畫布上首先點了一下幾個點:(0, 0), (2020, 11), (11, 14), (2000, 2000)。
只有這幾個格仔上有黑色,其它位置都是白色的。
每過一分鐘,黑色就會擴散一點。具體的,如果乙個格仔裡面是黑色,它
就會擴散到上、下、左、右四個相鄰的格仔中,使得這四個格仔也變成黑色
(如果原來就是黑色,則還是黑色)。
請問,經過 2020 分鐘後,畫布上有多少個格仔是黑色的。
1、這個就是上面說的那個,我試了一下就兩個點然後只算兩分鐘之後的,我也數了一下匹配,但是資料量大的時候還是算了。
grid=
for x in
range
(10000):
[0for a in
range
(10000)]
)def
ans(y,x,count):if
0<=x<
10000
and0
<=y<
10000
and count!=
100:
grid[y]
[x]=
1 ans(y+
1,x,count+1)
ans(y-
1,x,count+1)
ans(y,x+
1,count+1)
ans(y,x-
1,count+1)
site=[[
0+2021,0
+2021],
[11+2021
,2020
+2021],
[14+2021,11
+2021],
[2000
+2021
,2000
+2021]]
for j in site:
ans(j[0]
,j[1],
0)result=
0for x in grid:
j=x.count(1)
result+=j
print
(result)
2、用了乙個叫曼哈頓距離的東西。
題目中的要求就是每一分鐘擴散乙個格仔,當從a點到達b點需要移動的格仔超過2020個的時候是不會被擴散到的。
site=[[
0,0]
,[2020,11
],[11
,14],
[2000
,2000]]
result=
0for y in
range(-
2021
,4021):
for x in
range(-
2021
,4041):
for s in site:
ifabs
(s[1
]-y)
+abs
(s[0
]-x)
<=
2020
: result+=
1break
print
(result)
結果:20312088 藍橋杯 擴散 Python
題目 小藍在一張無限大的特殊畫布上作畫。這張畫布可以看成乙個方格圖,每個格仔可以用乙個二維的整數座標表示。小藍在畫布上首先點了一下幾個點 0,0 2020,11 11 14 2000 2000 只有這幾個格仔上有黑色,其它位置都是白色的。每過一分鐘,黑色就會擴散一點。具體的,如果乙個格仔裡面是黑色,...
藍橋杯每日一題(21) 擴散(python)
小藍在一張無限大的特殊畫布上作畫。這張畫布可以看成乙個方格圖,每個格仔可以用乙個二維的整數座標表示。小藍在畫布上首先點了一下幾個點 0,0 2020,11 11,14 2000,2000 只有這幾個格仔上有黑色,其它位置都是白色的。每過一分鐘,黑色就會擴散一點。具體的,如果乙個格仔裡面是黑色,它 就...
藍橋杯 擴散 c語言暴力解法
小藍在一張無限大的特殊畫布上作畫。這張畫布可以看成乙個方格圖,每個格仔可以用乙個二維的整數座標表示。小藍在畫布上首先點了一下幾個點 0,0 2020,11 11,14 2000,2000 只有這幾個格仔上有黑色,其它位置都是白色的。每過一分鐘,黑色就會擴散一點。具體的,如果乙個格仔裡面是黑色,它就會...