原创 HDU - 2486 A simple stone game k倍動態減法遊戲

題目:有n個石子,兩個遊戲者輪流操作,第一個操作的人最多能拿走n-1個石子,以後,每個遊戲者最多能拿走前一個遊戲者拿走數目的k倍,如果先手必敗輸出lose,否則輸出必勝的情況下第一步拿走的石子數。 (2<=n<=10^8,1<=k<=10

原创 ZOJ - 3529 A Game Between Alice and Bob 數論+博弈

題目:有N堆石頭,每次選中某一堆,把數量替換成原先的因子。全部爲1則結束。 思路:每個數都有一定數量的質因子數目,將其替換成因子,就相當於拿走了幾個質因子,就轉換成了NIM博弈,每堆石子的個數爲該數的質因子的數目。 代碼: #pragm

原创 ZOJ - 2686 Cycle Game

題目:有一個n個節點的環,相鄰節點間的邊上有個非負整數,至少會存在一個0,有一枚硬幣,其初始位置在0處,每個人可以讓硬幣移動到他的2個相鄰節點中的一個上去,但是要求邊上的整數是一個正數纔可以移動,移完之後,將邊上的整數減去一個數,不能移動

原创 POJ - 2311 Cutting Game SG函數

題目:給你一個w*h的矩形,每次可以選擇橫向或縱向切割矩形,將其分成2個矩形,N次操作後,就會有N+1個矩形,誰先切割出1*1誰就獲勝。 思路:誰先切割出1*1誰就勝,那麼就是說誰切割出1*x或x*1誰就輸了。然後求SG函數就可以了。 代

原创 HDU - 4111 Alice and Bob 求SG值

題目:有N堆石頭,可以把兩堆合成一堆,也可以把一堆去掉一個。問先手必勝還是先手必敗 思路:所有石子個數大於1的石子堆ai可以看成一堆石子數爲sigma(ai)+n-1的堆,因爲個數大於1的石子堆的合併,對方是無法阻擋的。但是1是可以阻擋的

原创 HDU - 2516 取石子游戲 斐波那契博弈

題目: 1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。取完者勝.先取者負輸出"Second win".先取者勝輸出"First win".  思路: fib[1]=1,

原创 HDU - 3590 PP and QQ 樹的刪邊博弈+anti_sg

題目:n棵樹的刪邊遊戲,每次可以選擇一棵樹刪邊,與根節點不相連的邊和節點會移走,進行最後一步操作的人輸。 思路: 樹的刪邊遊戲:葉子節點的SG值爲0;中間節點的SG值爲它的所有子節點的SG值加1 後的異或和。 ANTI-SG:先手必勝當且

原创 HDU - 2999 Stone Game, Why are you always there? 求sg值

題目:給出一串連續的K個石頭,一個集合allow,每次取出若干個連續的石頭(數量必須爲集合allow中的),最後取完的獲勝,問有沒有必勝策略。 思路:求出sg值 代碼: #pragma comment(linker, "/STACK:10

原创 POJ - 1678 I Love this Game! 記憶化dp

題目:有n個數,有一個區間[a,b],第一個人先取一個數,必須在區間內,後一次取必須比第一個數大,而且差值在區間內。問最後兩個人取的數的和的差值最大爲多少。 思路:枚舉第一次選的數,score[i]表示先手選第i個數的最大差值 代碼: #

原创 POJ - 3710 Christmas Game tarjan+樹的刪邊遊戲

題目: 有N個局部聯通的圖。 Harry 和 Sally 輪流從圖中刪邊,刪去一條邊後,不與根節點相連的部分將被移走。 Sally 爲先手。 圖是通過從基礎樹中加一些邊得到的。 所有形成的環保證不共用邊,且只與基礎樹有一個公共點。誰無路可

原创 HDU - 3032 Nim or not Nim?

題目:有n堆石子,Alice和Bob輪流操作,Alice先手,每次遊戲者有2種選擇,要麼拿走其中的任意數目的石子,要麼將石子堆分成2堆,誰拿走最後的石子誰勝 思路:sg打表找規律 代碼: #pragma comment(linker, "

原创 POJ - 2068 Nim NP狀態定理

題目:有S個石子,有兩個隊,每個隊有n個人,每個人每次有數量限制,取最後一個石子的輸,0,2,4,6,...屬於1隊,其餘的屬於2隊,按0,1,2,3,4,..,2n,0,1,2,....的順序輪流操作,問先手必勝還是先手必敗,1隊先手。

原创 HDU - 3404 Switch lights Nim乘法

 題目:給定一個n*m的矩形,上面的座標(x,y)滿足0<=x<=n,0<=y<=m,每個座標上面都有一枚硬幣,有的是正面向上,有的是反面向上,每次操作可以選擇一個矩形,這個矩形要滿足x,y最大的那個頂點上的硬幣是正面向上的,將4個頂點的

原创 HDU - 3595 GG and MM Every_SG遊戲

題目:n個遊戲同時進行,每個遊戲有兩堆石子,設個數少的那堆有x個石子,個數多的那堆有y個石子,那麼每次從y中取走k*x個石子,要求k>0,且k*x<=y。取最後一次的獲勝。並且n個遊戲同時進行,除非遊戲結束,否則必須操作。 思路:Ever

原创 POJ - 2599 A funny game NP狀態定理

題目:有一棵無向樹,從某個結點出發,兩個人輪流移動,走過的結點不能再走,不能移動的人輸。判斷先手必勝還是先手必敗,如果先手必勝,輸出必勝到達的節點。 思路:利用NP狀態定理,把起點的SG值算出來。 代碼: #pragma comment(