HDU多校10 - 6886 Tic-Tac-Toe-Nim(尼姆博奕)
題目鏈接:點(diǎn)擊查看
題目大意:兩個(gè)人在玩游戲,給出一個(gè) 3 * 3 的棋盤(pán),每個(gè)格子上有數(shù)個(gè)石子,兩人輪流取石子,誰(shuí)先取完某一列或某一行的最后一個(gè)石子就算勝利,一般情況是,每個(gè)人可以取任意一堆中任意數(shù)量的石子(可以直接取完),但兩個(gè)人第一次取的時(shí)候,必須將選擇的一堆全部取完,問(wèn)先手必勝的前提下,第一次有多少種不同的取石子方案
題目分析:比賽時(shí)將題目想復(fù)雜了,以為是博弈樹(shù)上的尼姆博奕,學(xué)了半天博弈樹(shù)發(fā)現(xiàn)沒(méi)什么用就掛機(jī)了,賽后看了一眼題解后恍然大悟,原來(lái)是題目給出的模型還沒(méi)有參透
因?yàn)榍皟纱伪仨氁≌?#xff0c;假設(shè)先手取的是 ( x0 , y0 ) , 后手取的是 ( x1 , y1 ) ,顯然兩個(gè)點(diǎn)不能重合,接下來(lái)考慮如果兩個(gè)點(diǎn)在同一列或者同一行時(shí),此時(shí)先手接下來(lái)只需要將相應(yīng)的第三堆全部拿走即可獲得勝利,也就是說(shuō)此時(shí)后手肯定不能取和先手位于同一行或者同一列的石子,換句話說(shuō),此時(shí)后手只能取相對(duì)于先手斜著的位置,這樣一來(lái),這個(gè)局面就變成了,誰(shuí)取與 ( x0 , y0 ) 和 ( x1 , y1 ) 同一列或同一行的最后一個(gè)棋子就是必?cái)B(tài),轉(zhuǎn)換一下,除了剛才提到的那些棋子外,剩下的所有棋子也就組成了尼姆博弈,然后用異或就能解決了
代碼:
?
?
總結(jié)
以上是生活随笔為你收集整理的HDU多校10 - 6886 Tic-Tac-Toe-Nim(尼姆博奕)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HDU多校7 - 6850 Game(博
- 下一篇: POJ - 2559 Largest R