算法基础之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");
  }
相关推荐
兔子零10243 分钟前
零硬件交互:如何用纯前端把摄像头变成 4000 个粒子的魔法棒?
前端·算法
AnAnCode3 分钟前
【时间轮算法】时间轮算法的详细讲解,从基本原理到 Java 中的具体实现
java·开发语言·算法·时间轮算法
sin_hielo4 分钟前
leetcode 3432
数据结构·算法·leetcode
mjhcsp5 分钟前
C++ 结构体(struct):自定义数据类型的核心解析
c++·结构体
ULTRA??7 分钟前
C++类型和容器在MoonBit中的对应关系整理
开发语言·c++·rust
李白同学8 分钟前
C++:queue、priority_queue的使用和模拟实现
开发语言·c++
fufu03119 分钟前
Linux环境下的C语言编程(三十七)
算法
楼田莉子13 分钟前
Linux学习:基础IO相关学习
linux·开发语言·c++·后端·学习
风筝在晴天搁浅18 分钟前
代码随想录 300.最长递增子序列
算法·动态规划
小O的算法实验室19 分钟前
2026年EAAI SCI1区TOP,基于进化算法的多目标施工现场布局与安全规划模型,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进