当前位置: 首页 > news >正文

台阶型Nim游戏博弈论

台阶型Nim游戏

题目

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

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

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

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

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

输入格式

第一行包含整数 n n n

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

输出格式

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

否则,输出 No

数据范围

1 ≤ n ≤ 1 0 5 1 \le n \le 10^5 1n105,
1 ≤ a i ≤ 1 0 9 1 \le a_i \le 10^9 1ai109

输入样例:

3
2 1 3

输出样例:

Yes

思路

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

必胜状态 a 1 ∧ a 3 . . . ∧ a n ! = 0 a_1 \land a_3 ...\land a_n!=0 a1a3...an!=0

代码

#include <bits/stdc++.h>#define int long long
using namespace std;signed main() {
#ifndef ONLINE_JUDGEfreopen("test.in", "r", stdin);freopen("test.out", "w", stdout);
#endifint 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;
}
http://www.lryc.cn/news/99351.html

相关文章:

  • NestJS 的 中间件 学习
  • 搭建自己第一个golang程序
  • Mysql加锁过程
  • 财经界杂志财经界杂志社财经界编辑部2023年第19期目录
  • Linux常用命令——dpkg-split命令
  • 常见的二十种软件测试方法详解
  • Python(一)
  • git pull无效,显示 * branch master -> FETCH_HEADAlready up to date. pull无效解决方法
  • SK5代理与socks5代理
  • 【【51单片机红外遥控小风车】】
  • 如何连接远程服务器?快解析内内网穿透可以吗?
  • 【云边有个小卖部】上新《探秘Linux》第三章 Linux 软件包管理器 yum
  • 【深度学习】【Image Inpainting】Free-Form Image Inpainting with Gated Convolution
  • 游戏引擎UE如何革新影视行业?创意云全面支持UE云渲染
  • DB-GPT:强强联合Langchain-Vicuna的应用实战开源项目,彻底改变与数据库的交互方式
  • STM32CubeMX v6.9.0 BUG:FLASH_LATENCY设置错误导致初始化失败
  • K8s-资源管理(二)
  • 脉冲信号测试应如何选择示波器带宽?
  • OpenCV DNN模块推理YOLOv5 ONNX模型方法
  • ThirdAI 的私有和可个性化神经数据库:增强检索增强生成(第 3/3 部分)
  • C# 解决TCP Server 关不掉客户端连接的问题
  • JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法)
  • mongostat跟踪Mongodb运行的状态
  • 华为数通HCIA-数通网络基础
  • 【设计模式】详解单例设计模式(包含并发、JVM)
  • 监控和可观察性在 DevOps 中的作用!
  • 论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks
  • 浏览器的同源策略 - 跨域问题
  • go 查询采购单设备事项[小示例]V2-两种模式{严格,包含模式}
  • c++11 标准模板(STL)(std::basic_filebuf)(八)