HDU多校10 - 6886 Tic-Tac-Toe-Nim(尼姆博奕)
生活随笔
收集整理的這篇文章主要介紹了
HDU多校10 - 6886 Tic-Tac-Toe-Nim(尼姆博奕)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:兩個人在玩游戲,給出一個 3 * 3 的棋盤,每個格子上有數個石子,兩人輪流取石子,誰先取完某一列或某一行的最后一個石子就算勝利,一般情況是,每個人可以取任意一堆中任意數量的石子(可以直接取完),但兩個人第一次取的時候,必須將選擇的一堆全部取完,問先手必勝的前提下,第一次有多少種不同的取石子方案
題目分析:比賽時將題目想復雜了,以為是博弈樹上的尼姆博奕,學了半天博弈樹發現沒什么用就掛機了,賽后看了一眼題解后恍然大悟,原來是題目給出的模型還沒有參透
因為前兩次必須要取整堆,假設先手取的是 ( x0 , y0 ) , 后手取的是 ( x1 , y1 ) ,顯然兩個點不能重合,接下來考慮如果兩個點在同一列或者同一行時,此時先手接下來只需要將相應的第三堆全部拿走即可獲得勝利,也就是說此時后手肯定不能取和先手位于同一行或者同一列的石子,換句話說,此時后手只能取相對于先手斜著的位置,這樣一來,這個局面就變成了,誰取與 ( x0 , y0 ) 和 ( x1 , y1 ) 同一列或同一行的最后一個棋子就是必敗態,轉換一下,除了剛才提到的那些棋子外,剩下的所有棋子也就組成了尼姆博弈,然后用異或就能解決了
代碼:
?
?
總結
以上是生活随笔為你收集整理的HDU多校10 - 6886 Tic-Tac-Toe-Nim(尼姆博奕)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU多校7 - 6850 Game(博
- 下一篇: POJ - 2559 Largest R