殘缺棋盤問題

2021-07-29 17:19:49 字數 620 閱讀 3713

殘缺棋盤問題

殘缺棋盤是乙個2^k*2^k個方格的棋盤,其中恰好有乙個方格殘缺,現在要求用三格板覆蓋棋盤,在此覆蓋中兩塊三格板不能重疊,三格板也不能覆蓋在殘缺的方格上。

#include

#include

#include

using namespace std;

const int n = 104;

int board[n][n]; //棋盤大小

int tile = 1; //l型骨牌號

void tileboard(int tr, int tc, int dr, int dc, int size)

if(dr>=tr+s&&dc

=tr+s&&dc>=tc+s) tileboard(tr+s, tc+s, dr, dc, s); else } int main() { int size; cin>>size; //輸入棋盤大小 int tr, tc, dr, dc; tr=tc=size; cin>>dr>>dc; //輸入殘缺點 board[dr][dc]=0; tileboard(0, 0, dr, dc, size); for(int i=0; i

殘缺棋盤問題

殘缺棋盤問題 對於1 1 2 2 4 4 8 8等 2 k 2 k的棋盤來說,都存在乙個任意的位置,而在棋盤剩餘位置都可以用乙個或多個由三個格仔組成的l型直角版覆蓋 那麼如何覆蓋呢?在這裡 採用分而治之的方法來考慮。對於已知的殘缺位置,一定處於當前棋盤的某個象限,那麼在剩下的三個象限中在連線的地方各...

A 棋盤問題

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將在乙個n n...

A 棋盤問題

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...