轉自: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