棋盘覆盖_分治策略_java实现

原创 2012年03月22日 18:10:12
public class qipan {
static int MAX_SIZE=16;
static int board[][]=new int[MAX_SIZE][MAX_SIZE];
    static int tile=0;
public void chessboard(int tr,int tc,int dr,int dc,int size){
   if(size==1)
    return;
   
   int t=tile++,s=size/2;
   //覆盖左上角
   if(dr<tr+s&&dc<tc+s)
    chessboard(tr,tc,dr,dc,s);
   else{
    board[tr+s-1][tc+s-1]=t;
    chessboard(tr,tc,tr+s-1,tc+s-1,s);
   }
   //覆盖右上角
   if(dr<tr+s&&dc>=tc+s)
    chessboard(tr,tc+s,dr,dc,s);
   else{
    board[tr+s-1][tc+s]=t;
    chessboard(tr,tc+s,tr+s-1,tc+s,s);
   }
   //覆盖左下角
   if(dr>=tr+s&&dc<tc+s)
    chessboard(tr+s,tc,dr,dc,s);
   else{
    board[tr+s][tc+s-1]=t;
    chessboard(tr+s,tc,tr+s,tc+s-1,s);
   }
   //覆盖右下角
   if(dr>=tr+s&&dc>=tc+s)
    chessboard(tr+s,tc+s,dr,dc,s);
   else{
    board[tr+s][tc+s]=t;
    chessboard(tr+s,tc+s,tr+s,tc+s,s );
   }
   }


public static void main(String[] args) {
int i,j;

qipan p1=new qipan();
p1.chessboard(0,0,0,1,4);
for(i=0;i<4;i++){
   for(j=0;j<4;j++)
    System.out.print(board[i][j]+" ");
   System.out.print("\n");
}
}
}

运行结果:

1 0 2 2
1 1 0 2
3 0 0 4
3 3 4 4

java实现的棋盘覆盖

算法设计与分析 第二版

java 棋盘覆盖算法

import java.util.Scanner; /** 棋盘覆盖 */ public class Arithmetic { /** 被覆盖后显示的数字,会根据覆盖的顺序有所递...

棋盘覆盖 算法分析、设计与实现(Java)

该篇虽然与很多的博客、解说一样讲的都是棋盘覆盖的解法。但是,该篇更多地倾向于“证明”,这也是我与很多读者都想知道的,而不是开篇就上代码。     目录 0,问题描述... 1 1,相关博客... 1 ...

用Java解决棋盘覆盖问题

Problem description  在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

棋盘覆盖问题(分治策略)

在一个2^k*2^k个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格且称该棋盘为一特殊棋盘。利用L型骨牌对特殊棋盘进行覆盖,要求骨牌不得重叠覆盖。 在棋盘覆盖问题中,可将棋盘转换...

分治策略之棋盘覆盖问题(ChessBoard)

在一个2k×2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有...

算法系列(一):分治策略--棋盘覆盖

算法系列(一):棋盘覆盖 一、分析 问题描述:   图1-1 k=2时的一个特殊棋盘 在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其它方格不同,则称该方格为一特殊方格,且称该棋...

分治策略(棋盘覆盖)

【问题描述】       在一个2^k×2^k个方格组成的棋盘中,有一个方格与其他方格不同,称该方格为一特殊方格,并称该棋盘为一个特殊棋盘。显然特殊方格在棋盘上出现的位置有4^k种情形。因而对任何k≥...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:棋盘覆盖_分治策略_java实现
举报原因:
原因补充:

(最多只允许输入30个字)