标签:

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