标签:
2 3 4 0
Alice Bob Alice
原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=562
基础博弈。
简单推导后n为3,7,15,31....(a[n] = a[i-1] *2+1) 时先手必败。
开始想到打表,把那些数字标记,后来意料之中的MLE,毕竟n<=10^9;后来找出范围内的必败点,就OK了
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int a[100000]; int main() { a[0]=3; for (int i=1;i<30;i++) { a[i]=a[i-1]*2+1; } int n; //freopen("4.txt","r",stdin); while(cin>>n,n) { bool flag=true; for(int i=0;i<30;i++) if(a[i]==n) flag=false; if(flag) cout<<"Alice"<<endl; else cout<<"Bob"<<endl; } return 0; }
标签:
原文地址:http://blog.csdn.net/hurmishine/article/details/52235088