總時間限制:
1000ms
記憶體限制:
65536kb
描述
有兩堆石子,兩個人輪流去取.每次取的時候,只能從較多的那堆石子裡取,並且取的數目必須是較少的那堆石子數目的整數倍.最後誰能夠把一堆石子取空誰就算贏.
比如初始的時候兩堆石子的數目是25和7
25 7
-->
11 7
-->
4 7-->
4 3-->
1 3-->
1 0選手1取
選手2取
選手1取
選手2取
選手1取
最後選手1(先取的)獲勝,在取的過程中選手2都只有唯一的一種取法。
給定初始時石子的數目,如果兩個人都採取最優策略,請問先手能否獲勝。
輸入輸入包含多數資料。每組資料一行,包含兩個正整數a和b,表示初始時石子的數目。
輸入以兩個0表示結束。
輸出如果先手勝,輸出"win",否則輸出"lose"
樣例輸入
34 1215 24
0 0
樣例輸出
winlose
提示假設石子數目為(a,b)且a >= b,如果[a/b] >= 2則先手必勝,如果[a/b]<2,那麼先手只有唯一的一種取法.
[a/b]表示a除以b取整後的值.
tips:對於輸入的x,y兩個數。討論起所有可能性
x>=2y 先手勝
yx==y 先手勝
#includeusing namespace std;
int a,b;
bool solve(int x,int y)
int main(){
while(cin>>a>>b)
{ if(a==0&&b==0)break;
int flag=solve(a,b);
if(flag)cout<<"win"<
取石子遊戲
如下 include include intmain k b a temp floor k 1.0 sqrt 5 2.0 if temp a printf 0 n else printf 1 n return 0 一 巴什博奕 bash game 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每...
取石子遊戲
有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。in...
取石子遊戲
取石子遊戲 time limit 1000ms memory limit 10000k total submissions 25176 accepted 7961 description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆...