在乙個2^k * 2^k個方格組成的棋盤中,恰有乙個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤。
該棋盤為特殊棋盤,紅色的方格為特殊方格。
棋盤覆蓋問題是指,要用圖2中的4種不同形態的l型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有方格,且任何2個l型骨牌不得重疊覆蓋。
該問題就是在考察分治的思想,將大棋盤分為乙個個的小棋盤,直到分為1*1的小棋盤。具體演算法如下。
當k>0
時,將2k×
2k棋盤分割為4個
2k-1×2
k-1子棋盤
(a)所示。
特殊方格必位於
4個較小子棋盤之一中,其餘
3個子棋盤中無特殊方格。為了將這
3個無特殊方格的子棋盤轉化為特殊棋盤,可以用乙個
l型骨牌覆蓋這
3個較小棋盤的會合處,如
(b)所示,從而將原問題轉化為
4個較小規模的棋盤覆蓋問題。遞迴地使用這種分割,直至棋盤簡化為棋盤1×1
棋盤覆蓋問題(遞迴與分治)
棋盤覆蓋問題。有乙個2k 2k2k 2k的方格棋盤,恰有乙個方格是黑色的,其他為白色。你的任務是用包含3個方格的l型牌覆蓋所有白色方格。黑色方格不能被覆蓋,且任意乙個白色方格不能同時被兩個或更多牌覆蓋。如圖所示為l型牌的4種旋轉方式。當乙個黑塊位於某一角時,可以解決乙個邊長為2的正方形匹配。可是這樣...
棋盤覆蓋 分治和遞迴
棋盤覆蓋問題 time limit 1000ms,special time limit 2500ms,memory limit 32768kb total submit users 62,accepted users 26 problem 10432 no special judgement pro...
遞迴與分治之棋盤覆蓋問題
在乙個2 k 2 k個方格組成的棋盤中,若有乙個方格與其他方格不同,則稱該方格為一特殊方格,且稱該棋盤為乙個特殊棋盤。顯然特殊方格在棋盤上出現的位置有4 k種情形.因而對任何k 0,有4 k種不同的特殊棋盤。下圖所示的特殊棋盤為 k 2 時 16 個特殊棋盤中的乙個。在棋盤覆蓋問題中,要用下圖中 4...