[数据结构][Python][经典题目]拼盘问题

    xiaoxiao2025-02-10  18

    经典智力问题:如图所示图中有一块角上缺一块方格的国际象棋棋盘,现在我们想用L型砖块拼出这样一块棋盘。

    def cover(board,lab=1,top=0,left=0,side=None): if side is None: side=len(board) s = side//2 offsets = (0,-1),(side-1,0) for dy_outer,dy_inner in offsets: for dx_outer,dx_inner in offsets: if not board[top+dy_outer][left+dx_outer]: board[top+s+dy_inner][left+s+dx_inner] = lab lab +=1 if s>1: for dy in [0,s]: for dx in [0,s]: lab = cover(board,lab,top+dy,left+dx,s) return lab board = [[0]*8 for i in range(8)] board[7][7] = -1 result = cover(board) print(result) for row in board: print((" %2i"*8)% tuple(row)) 3 3 4 4 8 8 9 9 3 2 2 4 8 7 7 9 5 2 6 6 10 10 7 11 5 5 6 1 1 10 11 11 13 13 14 1 18 18 19 19 13 12 14 14 18 17 17 19 15 12 12 16 20 17 21 21 15 15 16 16 20 20 21 -1
    最新回复(0)