算法基础之Nim游戏

Nim游戏

  • 核心思想:博弈论

    • 结论:将所有堆的石子数全部异或起来 得到的结果
    • 若为1 则先手必胜 若为0 则先手必败
cpp 复制代码
  #include <iostream>
  #include <cstring>
  #include <algorithm>
  
  using namespace std;
  const int N = 100010;
  
  int a[N];
  int n;
  
  int main()
  {
      cin>>n;
      int x;
      cin>>x;
      int res = x;
      for(int i=1;i<n;i++) cin>>x, res ^= x;
      
      if(res) puts("Yes");
      else puts("No");
  }
相关推荐
syagain_zsx33 分钟前
ODB 与 MySQL:C++ 里的 ORM 实践(类即表、事务铁律与查询封装)
开发语言·数据库·c++·mysql·工具库·1024程序员节
小鱼仙官34 分钟前
使用Qt封装C/C++ 动态库 用于第三方调用
c语言·c++·qt
老王的笔记v36 分钟前
71期 免费开源游戏资源管理工具 Pavise模式切换 游戏库 程序白名单与系统体检
游戏·电脑
荆棘鸟智能1 小时前
扬尘在线监测数据接入与异常清洗:从断点补传到质量审计
人工智能·算法·系统架构
晚风予卿云月1 小时前
【C++高并发内存池】 1.定长内存池的实现
开发语言·c++·内存管理
动词ing1 小时前
【题目练习】旋转图像
算法
天疆说1 小时前
【无标题】
算法
GG.WinGel2 小时前
三元组中心问题
java·数据结构·算法·青少年编程·蓝桥杯
开开心心就好2 小时前
电脑小说阅读器,支持朗读和自定义皮肤
服务器·开发语言·javascript·算法·pdf·c#·音视频
闻缺陷则喜何志丹2 小时前
【c++20】协程与屏障
c++·算法·c++20·携程·屏障