游戏与必胜策略
动态规划法
#include<iostream>
#include<cstdio>
using namespace std;
const int maxk=1000;
const int maxx=1000;
int x,k,a[maxk];
//动态规划所用到的数组
bool win[maxx+1];
void solve()
{
win[0]=false;
for(int j=1;j<=x;j++)
{
win[j]=false;
for(int i=0;i<k;i++)
{
win[j]|=A[i]<=j&&!win[j-a[i]];
}
}
if(win[x])puts("Alice");
else puts("Bob");
}