問題的描述很簡單,就是乙個西洋棋的棋盤缺少乙個方格。我們能否使用右邊l
的圖案拼出左邊這種棋盤(並且右邊的圖形不可以重疊)
這是一道智力測試題,但是我們可以通過程式非常簡潔的處理這個問題。
首先,我們希望問題的規模縮小,我們首先將棋盤分成四個部分
這個時候問題出現了,有乙個小部分和其他部分不同,這對我們很不利,但是可以這樣考慮
我們發現將棋盤中間挖去乙個l
型,就變成了四個相同的 「缺乙個角的小棋盤」 。這就很好了!我們把問題的規模變小了。
通過上述規律推導,不難發現,最後剩下的就是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 y_outer, y_inner in offsets:
for x_outer, x_inner in offsets:
ifnot board[top + y_outer][left + x_outer]:
board[top + s + y_inner][left + s + x_inner] = lab
lab += 1
if s > 1:
for y in [0, s]:
for x in [0, s]:
lab = cover(board, lab, top + y, left + x, s)
return lab
board = [[0]*8
for i in range(8)]
board[7][7] = -1
cover(board)
for row in board:
print((" %2d"*8) % tuple(row))
結果就是
334
4889
9322
4877
9526
610107
11556
111011
1113
1314118
1819
1913
1214
1418
1717
1915
1212
1620
1721
2115
1516
1620
2021 -1
校園的一角
早晨的宣傳欄前 王韜正在看一張 haha購物網招聘推銷員 的廣告。不遠處,王韜的女朋友晴晴等得有些不耐煩了。晴晴道 哎呀,那些廣告有什麼好看的,時間不早了,趕緊去圖書館佔位置去啦!王韜的眼睛依舊盯著廣告,說道 再等一會兒啊。晴晴鬧起了小脾氣,道 你不走,我可走了!王韜無奈道 好啦,走,不看啦。王韜邊...
指標與引用的一角
指標與引用的一角 2011年09月09日 引用通過指標實現是眾所周知的事情,但是指標和引用配合使用的時候遇到乙個小問題,現記錄於下,以供日後參照。問題的起因 通過訊息傳遞的系統,在收到訊息的時候需要解析訊息。最近做了一次修改,把訊息結構體裡的部分內容刪除以後,其中一部分內容改由記憶體拼接的方式傳遞。...
《古城一角》demo,ogre引擎與IOS
古城一角 是用ogre引擎和bullet引擎在蘋果的ipad的開發的 遊戲小demo,全部過程由我自己一人完成,其中資源裡面的人物和動畫是ogre裡面自帶的,場景模型是自己從torque的dts轉化的,屠龍刀是龍之谷裡面的模型。程式logo是我老婆給我設計的,甚是喜歡。1。程式logo 2.ogre...