棋盤覆蓋 Java

2021-08-30 17:22:42 字數 844 閱讀 2857

**於演算法設計課堂!

問題描述】 2k*2k個方格的乙個棋盤,有乙個方格殘缺

要求:

用三格板覆蓋棋盤,

三格板不重疊,

不覆蓋殘缺方格,

覆蓋所有其它方格

package com.divide;

public class chessboardcover else

// 覆蓋左下象限

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

// 殘缺方格位於本象限

tileboard(tr + s, tc, dr, dc, s);

else

// 覆蓋右下象限

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

// 殘缺方格位於本象限

tileboard(tr + s, tc + s, dr, dc, s);

else

}}

output:

2 2 3 3 

2 0 1 3 

4 1 1 5 

4 4 5 5 

java實現分治法 棋盤覆蓋問題

分治演算法 棋盤覆蓋問題 2 2 3 3 2 1 1 3 4 1 0 1 4 4 1 1 public class chessboradproblem param specialrow 特殊點的行下標 param specialcol 特殊點的列下標 param leftrow 矩陣的左邊起點行下標...

棋盤覆蓋問題

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個方格組成的棋盤中,恰有乙個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤,顯然特殊方格在棋盤上出現的位置有4k種情形。因而對任何k 0,有4k種不同的特殊棋盤。特殊方格必位於4個較小子棋盤之一中,其餘3個子棋盤中無特殊方格。為了將這3個無特殊方格的子棋盤轉化為特殊...