很简单的DP
//单堆石子的动态规划解法
#include<stdio.h>
#include<string>
//输入
int X,K,A[MAX_K];
//动态规划所有的数组
bool win[MAX_X+1];
void solve() {
win[0]=false;
int i,j;
for(j=1;i<=X;j++) {
//如果可以让对手到达必败态,则必胜
win[j]=false;
for(i=0;i<K;i++) {
win[j]|=A[i]<=j && !win[j-A[i]]; //所有的前一状态,只要有一个必败,则已方能赢
}
}
if (win[X]) puts("Alice");
else puts("Bob");
}
int main() {
}