问题描述
爱丽丝和鲍勃喜欢玩游戏。
有m写在黑板上的数字,所有这些都是介于0和n.
游戏规则如下:
如果黑板上还有数字,并且没有带值的数字0在黑板上,爱丽丝可以将黑板上剩余的数字分成两组。
Bob 选择其中一组并擦除该集中的所有数字。然后将所有剩余的数字减去一。
在任何时候,如果有一个值为0在黑板上,爱丽丝获胜;否则,如果黑板上的所有数字都被擦除,则鲍勃获胜。
请确定如果爱丽丝和鲍勃都以最佳方式玩游戏,谁将赢得游戏。
示例输入
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;
const int mod=1e9+7;
const int N=1e6+5,M=15;
typedef long long LL;
typedef pair<double,double> PDD;
LL a[N];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
for(int i=0 ; i<=n ; i++ ) cin>>a[i];
for(int i=n;i>0;i--){
a[i-1]+=a[i]/2;
}
if(a[0]) puts("Alice");
else puts("Bob");
}
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务