NYOJ-23 取石子(一)


取石子(一)

時間限制: 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
 1 /*
 2 巴什博奕(Bash Game):
 3     只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取一個,最多取m個。
 4 最后取光者得勝。
 5     顯然,如果n=m+1,那么由於一次最多只能取m個,所以,無論先取者拿走多少個,
 6 后取者都能夠一次拿走剩余的物品,后者取勝。因此我們發現了如何取勝的法則:如果
 7 n=(m+1)r+s,(r為任意自然數,s≤m),那么先取者要拿走s個物品,如果后取者拿走
 8 k(≤m)個,那么先取者再拿走m+1-k個,結果剩下(m+1)(r-1)個,以后保持這樣的
 9 取法,那么先取者肯定獲勝。總之,要保持給對手留下(m+1)的倍數,就能最后獲勝。
10 這個游戲還可以有一種變相的玩法:兩個人輪流報數,每次至少報一個,最多報十
11 個,誰能報到100者勝。
12 */
13 #include <iostream>
14 #include <cstdio>
15 
16 using namespace std;
17 
18 int main()
19 {
20     int n, m, T;
21     scanf("%d", &T);
22     while(T--)
23     {
24         scanf("%d%d", &n, &m);
25         if(n % (m + 1))
26             printf("Win\n");
27         else
28             printf("Lose\n");
29     }
30     return 0;
31 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM