题意:
一对石子,一个人最多拿两个,最少那一个。
Allice先拿,最后拿球的输。
Bob先拿,最后拿球的赢。
问你谁会赢
1:当Bob先拿,问题是裸的巴士博弈。
2:当Alice先拿,我们可以将n-1,然后就把问题转换成谁先拿完n-1个石子谁赢,然后就是巴士博弈。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;
int main()
{
int t,cas=1;scanf("%d",&t);
while(t--)
{
int n,m;char s[10];
scanf("%d%s",&n,s);
if(s[0]=='A')
{
n--;
if(n%3==0)
{
printf("Case %d: Bob\n",cas++);
}
else
{
printf("Case %d: Alice\n",cas++);
}
}
else
{
if(n%3==0)
{
printf("Case %d: Alice\n",cas++);
}
else
{
printf("Case %d: Bob\n",cas++);
}
}
}
return 0;
}