NYOJ 取石子(一)

2021-07-14 19:46:21 字數 1001 閱讀 8179

取石子(一)

時間限制:3000 ms | 記憶體限制:65535 kb

難度:2

描述 一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他/她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n(1<=n<=1000000),兩個人輪番取出其中的若干個,每次最多取m個(1<=m<=1000000),最先把石子取完者勝利。我們知道,tt和他/她的室友都十分的聰明,那麼如果是tt先取,他/她會取得遊戲的勝利麼?

輸入 第一行是乙個正整數n表示有n組測試資料

輸入有不到1000組資料,每組資料一行,有兩個數n和m,之間用空格分隔。

輸出 對於每組資料,輸出一行。如果先取的tt可以贏得遊戲,則輸出「win」,否則輸出「lose」(引號不用輸出)

樣例輸入

2

1000 1

1 100

樣例輸出

lose

win

ac//巴什博弈

#include 

int main()

else

}return

0;}

巴什博弈:巴什博弈:只有一堆n個物品,兩個人輪流從這堆物品中取物, 規定每次至少取乙個,最多取m個。最後取光者得勝。

顯然,如果n=m+1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則:如果n=(m+1)r+s,(r為任意自然數,s≤m),那麼先取者要拿走s個物品,如果後取者拿走k(≤m)個,那麼先取者再拿走m+1-k個,結果剩下(m+1)(r-1)個,以後保持這樣的取法,那麼先取者肯定獲勝。總之,要保持給對手留下(m+1)的倍數,就能最後獲勝。

而這個問題是首先取光者獲勝,不難看出,只要將物品剩餘個數一直保持在(m+1)的倍數個時第乙個取東西的人獲勝。

因此判斷條件是?n%(m+1)==0

NYOJ 取石子總結

nyoj的取石子有好多道,除了兩道難度為6的,剩下的在這兒簡單總結一下結論。取石子 一 有一堆石子共有n個,a和b輪流取,a先,每次最少取1個,最多取m個,先取完者勝,a,b足夠聰明,問誰先勝?比較簡單的巴什博弈,若n m 1 0,a勝,否則b勝。取石子 七 n個石子擺成一圈,a和b輪流取,每次可以...

NYOJ 23 取石子(一)

時間限制 3000 ms 記憶體限制 65535 kb難度 2 描述 一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他 她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n 1 n 1000000 兩個人輪番取出其中的若干個,每次最多取m個 1 m 1000...

nyoj 23 取石子(一)

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他 她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n 1 n 1000000 兩個人輪番取出其中的若干個,每次最多取m個 1 m 100...