Bash Game

巴什博奕(Bash Game):只有一堆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)的倍數,就能最後獲勝。

 

#include<iostream>
using namespace std;
int main()
{
int c,n,m;
scanf("%d",&c);
while(c--)
{
scanf("%d%d",&n,&m);
if(n<=m||n%(m+1)!=0)
{
printf("first\n");
continue;
}
printf("second\n");
}
return 0;
}

 

http://www.cnblogs.com/XBWer/archive/2012/08/21/2649926.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章