問題 C 棋盤覆蓋問題

2021-09-17 01:14:41 字數 749 閱讀 4219

題目描述

在乙個n×n (n = 2k)個方格組成的棋盤中,恰有乙個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤。

在棋盤覆蓋問題中,要用圖示的4種不同形態的l型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有方格,且任何2個l型骨牌不得重疊覆蓋。

輸入多組測試用例,每組測試用例包括兩部分,

第一部分為方格的寬度n,

第二部分則為方格,特殊方格為-1,其他方格為0。

輸出輸出覆蓋後的方案

樣例輸入 copy

4-1 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

樣例輸出 copy

-1 2 4 4

2 2 1 4

3 1 1 5

3 3 5 5

#includeusing namespace std;

int tie=1;

int board[100][100]=;

void chessboard(int tr,int tc,int dr,int dc,int size)else

//右下角

if(dr>=tr+s&&dc>=tc+s)else }

int main()

}} chessboard(0,0,dr,dc,n);

for(int k=0;kcout<} tie=1; }

return 0;

}

棋盤覆蓋問題

source code include include include using namespace std const int n 1024 int board n n count void cover int sx,int sy,int cx,int cy,int size,int cx1,i...

棋盤覆蓋問題

問題 在乙個2k 2k k 0 個方格組成的棋盤中,恰有乙個方格與其他方格不同,稱該方格為特殊方格。顯然,特殊方格在棋盤中可能出現的位置有4k種,因而有4k種不同的棋盤,圖4.10 a 所示是k 2時16種棋盤中的乙個。棋盤覆蓋問題 chess cover problem 要求用圖4.10 b 所示...

棋盤覆蓋問題

棋盤覆蓋問題 time limit 1000ms,special time limit 2500ms,memory limit 32768kb total submit users 103,accepted users 40 problem 10432 no special judgement pr...