zcmu 1122: 取石子游戲II

1122: 取石子游戲II

Time Limit: 1 Sec Memory Limit: 128 MB

Description

一堆石子有n個,兩人輪流取.每次取最少取1個,最多取m個。取完者勝.先取者負輸出"Second win".先取者勝輸出"First win"

Input

多組測試數據。

每組測試數據包含2個正整數n,m。(n,m<=10000000)

Output

對於每組測試數據,輸出誰獲勝.

Sample Input

2 1
3 2
3 1
Sample Output

Second win
Second win
First win
HINT

Source

【分析】
經典的巴什博弈,這個我覺得相較於斐波那契博弈,巴什博弈更好理解一點;
歸納一句話就是:給對手留下(m+1)的倍數,自己就能贏
那麼,要先手並且n%(m+1)==0的話,是不是就不可以給對手留下(m+1)的倍數了,此時,先手必敗!

【代碼】

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
   int n,m;
   while(scanf("%d%d",&n,&m)!=EOF)
   {
       if(n%(m+1)==0)
       {
           printf("Second win\n");
       }
       else
       {
           printf("First win\n");
       }
   }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章