#51503: python超詳細題解,完整程式碼在github


henry0985524680@gmail.com (張弘勳)

學校 : 臺北市立建國高級中學
編號 : 192343
來源 : [39.12.34.245]
最後登入時間 :
2024-10-31 20:28:41

蜂巢結構數字化

假設蜂巢結構是一個MxN的矩陣叫做A
Aij代表第i列第j行的元素
題目要求從左下角開始,所以起點就是(m-1,0)

#beemap[mxn]
#bmn bmn+1 bmn-1
#bn  bn+1  b2n-1
#b   b1    bn-1
beemap=[]
for i in range(m):
    beemap.append(input())

移動方法數字化

圖一

觀察圖一,從起點A(1,0)的地方朝右上移動到達T(0,0)
所以0這個方法是往上走一列,行不變,將其記為(-1,0)
同理可將其餘五種方法也如此表示

methods=[[-1,0],
         [0,1],
         [1,1],
         [1,0],
         [0,-1],
         [-1,-1]]

邊界問題

我們設定directions代表題目給的途徑,並用dummy紀錄上一步的格子。每走一步判斷是否出界,若出界則回到上一步的格子

for i in directions:
    method=methods[i]
    dummy=[p[0],p[1]]
    p[0]+=method[0]
    p[1]+=method[1]
    if p[0]>m-1 or p[0]<0 or p[1]>n-1 or p[1]<0:
        p=dummy
原始碼