棋盤覆蓋問題(分治,遞迴)

2021-09-13 19:52:31 字數 1118 閱讀 1412

在乙個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...