【轉】棋盤覆蓋問題-分治法

轉自:https://blog.csdn.net/qq_30268545/article/details/80600064

什麼是棋盤覆蓋方法?

    我去找其他人的解釋,恰恰發現一個矛盾的地方,就是看解釋比較難理解,但是看解決棋盤覆蓋的過程,就很容易理解什麼是棋盤覆蓋問題了。所以這裏就不解釋了,直接給一個解決16*16的棋盤解決過程,看完過程,相信你也理解了什麼是棋盤問題了。

    如下:

首先給出一個包含一個奇異點的16*16棋盤:

第一步是將該棋盤分爲四個等大的子棋盤:

然後將該棋盤看做是4*4的棋盤,可以看到奇異點在左上角的子棋盤中,那麼這一步的任務就是用一個(真的是一個)L型的棋子(下圖中紅色的格子)將其他三個子棋盤構造成含奇異點的子棋盤:

下一步是將紅線分割的子棋盤又切割成四個子棋盤(白色線切開的子棋盤):

然後對每個紅色線包圍在裏面的子棋盤,用一個L型棋子(黃色)又構造出奇異點,使得每個子棋盤都有一個奇異點,即白色線圍起來的格子看做是一個整體,裏面包含一個黃色的奇異點:

下一步是繼續講白色線包圍的格子切分爲4個子棋盤,這裏爲了方便觀察,將前面所有的分割線去掉:

同理,對黃色的棋盤構造含奇異點的子棋盤(藍色):

最後可以分割到2*2的格子,然後每個2*2的子棋盤都已經包含一個奇異點了,剩下的就是用L型旗子去填好剩下的三個格子。

好了,任務完成。是不是覺得很簡單呢,覺得簡單的話就點個讚唄。

具體的實現代碼,請參考我的另外博客。棋盤覆蓋-分治法(代碼實現)
————————————————
版權聲明:本文爲CSDN博主「JoJonny」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_30268545/article/details/80600064

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章