package fz;
/*2 0 3 3
2 2 1 3
4 1 1 1
4 4 1 1
棋盤乙個特殊點用l型的棋子進行覆蓋
//進行分治法計算 然後分成更小的 比如4分成2,2,2,2 的矩陣 然後進行繼續分 分成1,1,1,1的標明其他非特殊點
*/public class chessboradproblem
/*board棋盤
specialrow特殊行
specialcol特殊的列
leftrow矩陣最左邊的行
leftcol矩陣最左邊的列
size 棋盤的大小
*/private void chessboard(int specialrow,int specialcol,int leftrow,int leftcol,int size)
int subsize=size/2;
type=type%4+1;
int n=type;
//特殊點在左上角
if (specialrow=leftcol+subsize)else
//特殊點在左下角
if (specialrow>=leftrow+subsize&&specialcol=leftrow+subsize&&specialcol>=leftcol+subsize)else
}public void prentfboard()
system.out.println();}}
public static void main(string args)
}
分治 棋盤覆蓋問題
描述 在乙個2 k 2 k個方格組成的棋盤中,任意存在乙個特殊方格,那麼總有 4 k 1 3個l型骨牌可以將剩餘方格完全覆蓋。分析 將棋盤橫豎四等分,則特殊方格必存在於某一區域。存在特殊方格的區域自然可以完全覆蓋,其餘三個無特殊方格的區域必須去掉乙個方格方可用l型骨牌完全覆蓋。故,將三區域相鄰部分用...
分治策略之棋盤覆蓋問題
1 引出 首先用合併排序來引出我們今天的主角,合併排序即使用了分治的策略,它將所要排序的區間劃分為2個子區間,將這兩個子區間分別進行遞迴排好順序,然後合併這兩個子區間 合併過程運用了簡單的雙指標演算法 即獲得原問題的解。其實棋盤覆蓋問題也是這樣的。2 主角登場 問題 在乙個2k 2k個方格組成的棋盤...
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 矩陣的左邊起點行下標...