国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Java基于分治算法實現的棋盤覆蓋問題示例

Java基于分治算法實現的棋盤覆蓋問題示例

2021-02-18 14:10萌神哆啦A夢 JAVA教程

這篇文章主要介紹了Java基于分治算法實現的棋盤覆蓋問題,簡單描述了棋盤覆蓋問題,并結合具體實例形式分析了java基于分治算法實現棋盤覆蓋問題的相關操作技巧,需要的朋友可以參考下

本文實例講述了java基于分治算法實現的棋盤覆蓋問題。分享給大家供大家參考,具體如下:

在一個2^k * 2^k個方格組成的棋盤中,有一個方格與其它的不同,若使用以下四種l型骨牌覆蓋除這個特殊方格的其它方格,如何覆蓋。四個l型骨牌如下圖:

Java基于分治算法實現的棋盤覆蓋問題示例

棋盤中的特殊方格如圖:

Java基于分治算法實現的棋盤覆蓋問題示例

實現的基本原理是將2^k * 2^k的棋盤分成四塊2^(k - 1) * 2^(k - 1)的子棋盤,特殊方格一定在其中的一個子棋盤中,如果特殊方格在某一個子棋盤中,繼續遞歸處理這個子棋盤,直到這個子棋盤中只有一個方格為止如果特殊方格不在某一個子棋盤中,將這個子棋盤中的相應的位置設為骨牌號,將這個無特殊方格的了棋盤轉換為有特殊方格的子棋盤,然后再遞歸處理這個子棋盤。以上原理如圖所示:

Java基于分治算法實現的棋盤覆蓋問題示例

具體代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package demo;
public class chess {
  /*tr表示棋盤左上角行號
  tc表示棋盤左上角列號
  dr表示特殊棋盤的行號
  dc表示特殊棋盤的列號*/
  public static void chessboard(int tr, int tc, int dr, int dc, int size) {
    if(size == 1) {
      return;
    }
    int t = title ++;
    int s = size/2;
    //覆蓋左上角子棋盤
    if(dr < tr + s && dc < tc +s) {
      //特殊方格在此棋盤中
      chessboard(tr, tc, dr, dc, s);
    }
    else {
      //此棋盤中無特殊方格,用t號l型骨牌覆蓋右下角
      board[tr + s - 1][tr + 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 {//此棋盤中午特殊方格,用t號l型骨牌覆蓋左下角
      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 {
      //此棋盤中無特殊方格,用t號l型骨牌覆蓋右上角
      board[tr + s][tr + s -1] = t;
      //覆蓋其余方格
      chessboard(tr, tc, tr + s , tc + s - 1, s);
    }
    //覆蓋右下角子棋盤
    if(dr >= tr + s && dc >= tc + s) {
      //特殊方格在此棋盤中
      chessboard(tr + s, tc+s, dr, dc, s);
    }
    else {//此棋盤中無特殊方格,用t號l型骨牌覆蓋左上角
      board[tr + s ][tc + s] = t;
      //覆蓋其余方格
      chessboard(tr + s, tc + s, tr + s , tc + s, s);
    }
  }
   @suppresswarnings("static-access")
 public static void main(string args[]) {
     system.out.println("服務器之家測試結果:");
     board[2][2] = 0;
     chess ch = new chess();
     ch.chessboard(0, 0, 2, 2, size);
     for(int i = 0; i < size; ++ i) {
       for(int j = 0; j < size; j++) {
         system.out.print(board[i][j] + " ");
       }
       system.out.println();
     }
   }
  static final int size = 4;
  static int title = 1;
  static int board[][] = new int[size][size];
}

運行結果:

Java基于分治算法實現的棋盤覆蓋問題示例

希望本文所述對大家java程序設計有所幫助。

原文鏈接:http://blog.csdn.net/u014755255/article/details/50531621

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩中文字幕在线免费观看 | 午夜视频在线观看网站 | 欧美一级精品片在线看 | www中文字幕在线观看 | 日韩资源 | av免费观看网页 | 日韩视频在线免费观看 | 综合久久久久 | 欧美一级片 | 亚洲永久免费 | 九九久久久 | 欧美亚洲一区 | 亚洲一区av在线 | 日韩一区二区不卡 | a级毛片免费高清视频 | 亚洲精选国产 | 美女视频黄a| 久久久国产精品久久久 | 国产精品久久久久久久久久久免费看 | 日韩在线视频一区 | 亚洲一区中文 | 亚洲国产精品一区在线 | 亚洲欧洲精品成人久久奇米网 | 久久九九99| 欧美激情一区二区三区 | 久久久久久国产精品免费免费狐狸 | 亚洲精品一二三 | 色站综合 | 久久综合九九 | 人人人人澡 | 久久成人免费视频 | 日韩资源 | 欧美日韩高清在线观看 | 国产精品久久久久久久久久久新郎 | 国产成人一区二区啪在线观看 | 一区二区在线免费观看 | 在线观看一区二区精品 | 亚洲欧美日韩国产综合 | 久久久久久久久久久久一区二区 | 伊人久久国产 | 一本色道久久综合狠狠躁篇的优点 |