台阶型Nim游戏

简介: 台阶型Nim游戏

台阶型Nim游戏

题目

https://www.acwing.com/problem/content/894/

现在,有一个 $n$ 级台阶的楼梯,每级台阶上都有若干个石子,其中第 $i$ 级台阶上有 $a_i$ 个石子($i \ge 1$)。

两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。

已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。

问如果两人都采用最优策略,先手是否必胜。

输入格式

第一行包含整数 $n$。

第二行包含 $n$ 个整数,其中第 $i$ 个整数表示第 $i$ 级台阶上的石子数 $a_i$。

输出格式

如果先手方必胜,则输出 Yes

否则,输出 No

数据范围

$1 \le n \le 10^5$,
$1 \le a_i \le 10^9$

输入样例:

3
2 1 3

输出样例:

Yes

思路

将奇数位置上面的数看成是Nim游戏即可,

必胜状态$a_1 \land a_3 ...\land a_n!=0$

代码

#include <bits/stdc++.h>

#define int long long
using namespace std;


signed main() {
   
#ifndef ONLINE_JUDGE
    freopen("test.in", "r", stdin);
    freopen("test.out", "w", stdout);
#endif
    int n, res = 0, x;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
   
        cin >> x;
        if (i & 1) res ^= x;
    }
    cout << (res ? "Yes" : "No") << endl;


    return 0;
}
相关文章
|
6月前
|
人工智能 决策智能
博弈论:Nim游戏
博弈论:Nim游戏
【Leetcode -292.Nim游戏 -326. 3的幂 -338.比特位计数】
【Leetcode -292.Nim游戏 -326. 3的幂 -338.比特位计数】
36 0
|
6月前
leetcode:292. Nim 游戏(数学推理)
leetcode:292. Nim 游戏(数学推理)
35 0
[C语言][小游戏][猜拳游戏]
[C语言][小游戏][猜拳游戏]
[C语言][小游戏][猜拳游戏]
|
机器学习/深度学习 决策智能
博弈论-nim 游戏
博弈论-nim 游戏
164 0
博弈论-nim 游戏
|
决策智能
SG函数Nim游戏博弈论
SG函数Nim游戏博弈论
84 0
SG函数Nim游戏博弈论
|
小程序 开发者
在小游戏之间增加跳转,为自己的游戏带来更多玩家
嗨!大家好,我是小蚂蚁。之前有一篇文章,我的一位学员分享过如何为自己的小游戏起名字,起一个好名字是有可能带来一定的自然搜索流量的。对于个人开发者来讲,流量是一种极其珍贵的东西,直接真金白银的去推广买流量,基本上不现实,所以我们需要尽可能的想办法,获取一些免费的自然流量。
159 0
|
人工智能 决策智能
博弈论(NIM游戏——取石子)相关的题目
博弈论(NIM游戏——取石子)相关的题目
161 0
HDU5088 Revenge of Nim II(高斯消元求自由元个数 Nim博弈)
HDU5088 Revenge of Nim II(高斯消元求自由元个数 Nim博弈)
87 0
HDU3915 Game (高斯消元求自由元个数)
HDU3915 Game (高斯消元求自由元个数)
105 0