简单的博弈题,用dp解;
每个人只能拿1,l,k个硬币;
dp[i][j]表示第j个人拿是否能拿第i枚硬币;
代码:
#include<cstdio>
#define maxn 1000007
using namespace std;
bool dp[maxn][];
int x,l,m,k; int main()
{
scanf("%d%d%d",&k,&l,&m);
for(int i=;i<=;i++)
for(int j=;j<;j++)
{
dp[i][j]|=-dp[i-][j^];
if(i>=l)dp[i][j]|=-dp[i-l][j^];
if(i>=k)dp[i][j]|=-dp[i-k][j^];
}
while(m--)
{
scanf("%d",&x);
printf("%c",'B'-dp[x][]);
}
puts("");
return ;
}