动态规划法
#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"); }