由于每次就取走一个石子,仔细想想其实就是看这堆石子是奇数还是偶数,是奇数就是Alice赢,否则是Bob赢,然后在判断奇数、偶数的问题上可以使用位运算,让这个数&1,看结果是0还是1,是1则说明这个数的最后一位也是1,这个数就是奇数,否则是偶数,不太会位运算的可以看看深入理解计算机系统这本书,里面有详细解释,使用位运算的原因呢也是因为它速度快,在快速幂模板中有同样的运用。
所以很快得出代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,x,sum=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
sum+=x;
}
if(sum&1) //等价于sum%2==1
cout<<"Alice"<<endl;
else
cout<<"Bob"<<endl;
return 0;
}