P1288 取数游戏II
原题链接
考察:博弈论
思路:
每次可以选择两个方向,往正方向走,如果0在偶数个位置必胜.往反方向走,如果0在离n+1的距离有偶数个距离也必胜.
Code
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 25;
int n,a[N],fi = N,la;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(!a[i]) fi = min(fi,i),la = max(la,i);
}
if(fi%2==0) puts("YES");
else if((n+1-la)%2==0) puts("YES");
else puts("NO");
return 0;
}