https://codeforces.com/contest/1194/problem/D
假设k==3
sg[0]=0,
sg[1]=mex{sg[0]}=1,
sg[2]=mex{sg[0],sg[1]}=2,
sg[3]=mex{sg[0],sg[1],sg[2]}=3,
sg[4]=mex{sg[1],sg[2],sg[3]}=0,
sg[5]=mex{sg[2],sg[3],sg[4]}=1,
sg[6]=mex{sg[3],sg[4],sg[5]}=2,
sg[7]=mex{sg[4],sg[5],sg[6]}=3,
sg[8]=mex{sg[5],sg[6],sg[7]}=0.
0,1,2,3循环 策略是先手是4的倍数必败
假设k==4
sg[0]=0,
sg[1]=mex{sg[0]}=1,
sg[2]=mex{sg[0],sg[1]}=2,
sg[3]=mex{sg[1],sg[2]}=0,
sg[4]=mex{sg[0],sg[2],sg[3]}=1,
sg[5]=mex{sg[1],sg[3],sg[4]}=2,
sg[6]=mex{sg[2],sg[4],sg[5]}=0,
sg[7]=mex{sg[3],sg[5],sg[6]}=1,
sg[8]=mex{sg[4],sg[6],sg[7]}=2.
int q,n,k,ans;
ll a[maxn];
int main()
{
/* int vis[25];
memset(vis,0,sizeof vis);
for(int i = 3 ; i < 20 ; i++) {
cout<<"i: "<=0 && !vis[j-1]) || (j-2>=0 && !vis[j-2]) ||(j-i>=0&& !vis[j-i])){
vis[j] = 1;
}
cout<>t;
while(t--){
cin>>n>>k;
bool BobWin=true;
if(k%3==0){ //k=3 循环节=k+1
n%=(k+1);//余数0-k
if(n%3)//第一个 011 1 011 1 01
BobWin=false;
if(n==k)//第k+1个
BobWin=false;
}
else{//循环节=3 011 011
if(n%3)
BobWin=false;
}
puts(BobWin?"Bob":"Alice");
}
return 0;
}
int t;
cin>>t;
while(t--){
cin>>n>>k;
if(k%3==0){
int x=(n+1)%(k+1); //一轮内 余数0-k
if(x%3==1) //011 1 011 1 01
cout<<"Bob"<