题目.
先提前声明,本篇博客的代码过题会T,但是思路没问题,就是暴力打表。
说实话,对于这样的博弈题,打表实在是从未想过的做法。其实,从最初的状态的进行按照题意的操作,现在的状态建立以前已知的转态,就可以判断出现在的状态下,两人的输赢情况。
#include <bits/stdc++.h>
using namespace std;
const int N=5e3+10;
#define T int T; scanf("%d", &T); while(T--)
int a[N][N];
void solve(){
for(int i=0; i<=5000; i++){
for(int j=0; j<=5000; j++){
if(!a[i][j]){
for(int k=1; k+i<=5000; k++){
for(int s=0; s*k+j<=5000; s++){
a[i+k][j+s*k]=1;
}
}
for(int k=1; k+j<=5000; k++){
for(int s=0; s*k+i<=5000; s++){
a[i+s*k][j+k]=1;
}
}
}
}
}
}
int main()
{
T{
int n, m;
scanf("%d%d", &n, &m);
if(a[n][m])
printf("Alice\n");
else
printf("Bob\n");
}
return 0;
}