C/C++教程

(Nim游戏+博弈论)acwing 892. 台阶-Nim游戏

本文主要是介绍(Nim游戏+博弈论)acwing 892. 台阶-Nim游戏,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

892. 台阶-Nim游戏

题目链接https://www.acwing.com/problem/content/894/
题目:
在这里插入图片描述

思路:如果先手时,奇数台阶上的值的异或值为0,则先手必败,反之必胜。偶数台阶移到地面需要偶数次,后手移动偶数,先手就移动恢复偶数状态

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;
int main(){
    int n;
    int a;
    cin>>n;
    int sum=0;
    for(int i=0;i<n;i++){
        scanf("%d",&a);
        if(i%2==0)
            sum^=a;
    }
    if(sum)cout<<"Yes";
    else cout<<"No";
    return 0;
}

这篇关于(Nim游戏+博弈论)acwing 892. 台阶-Nim游戏的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!