游戏与必胜策略



动态规划法


#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");
}



原文地址:https://www.cnblogs.com/bryce1010/p/9387270.html