(zoj 3882 Help Bob)

Problem

傳送門
題意:有1~n個數字,兩個人輪流選擇一個數字,並把它和它的約數擦去。擦去最後一個數的人
贏,問誰會獲勝。


Solution

這個證明比較玄學

  • 假設有某種必勝策略(無論是先手還是後手)
  • 假如是先手必勝,那麼Bob會按照必勝策略即可贏
  • 假如是後手必勝,那麼Bob可以選擇1,因爲1是任何數的約數,相當於把後手的機會留給了自己
  • 因此無論如何,Bob都有必勝策略
  • 注意特判n==0

Code

// by spli
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;

int n;

int main(){
    while(scanf("%d",&n)!=EOF){
        if(n) puts("win");
        else puts("fail");
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章