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;
}
posted @ 2021-05-23 15:33  acmloser  阅读(29)  评论(0编辑  收藏  举报