Alice可以将一堆数字分成两队,而Bob可以将其删去一堆,并i减去1,若是有0的出现则Bob获胜反之Alice获胜。
所以我们每一次都将数字分为两队,并和前面为一体,如果有零的出现肯定是出现在一开始第一次的时候,所以只要全部模拟完毕之后判断一下开头的数字是否为0就可以。
#include <bits/stdc++.h>
using namespace std;
int a[100005];
int n;
int main(){
int t;
while(cin>>t){
while(t--){
cin>>n;
for(int i=0;i<=n;i++){
cin>>a[i];
}
for(int i=n;i>=1;i--){
a[i-1]+=a[i]/2;
}
if(a[0]==0){
cout<<"Bob"<<endl;
}
else{
cout<<"Alice"<<endl;
}
}
}
return 0;
}