CodeForces - 1450C2 Errich-Tac-Toe (Hard Version)(思维+构造)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 1450C2 Errich-Tac-Toe (Hard Version)(思维+构造)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出一個大小為 n * m 的棋盤,規定不能有三個連續的 ' X ' 或三個連續的 ' O ' ,現在可以通過一次操作將 ' X ' 改成 '?O '?或者將 ' O ' 改成 ' X ',請輸出一種修改次數不超過??的構造方法,k 是總棋子數
題目分析:因為不允許有超過三個連續的棋子相連,所以可以將整個棋盤按照 模三取余 劃分,大概是下圖的樣子(圖來自官方題解)
對于模三取余的集合 { 0 , 1 , 2 } 來說,我們只需要任選兩個數字 t1 和 t2,滿足 t1 != t2 且 ,然后將 t1 位置的 X 全部替換成 O,對于 t2 位置同理,可以證明這樣是一定存在解的
補充一句,這樣將方格矩陣圖根據行列劃分成三分圖真的太妙了,和之前做過的按照奇偶劃分為二分圖的一個題類似,由此是不是可以擴展成,將其劃分成 n 分圖呢
代碼:
?
?
總結
以上是生活随笔為你收集整理的CodeForces - 1450C2 Errich-Tac-Toe (Hard Version)(思维+构造)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中石油训练赛 - Switches(高斯
- 下一篇: CodeForces - 1450E C