算法基础之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");
  }
相关推荐
Z1Jxxx2 分钟前
C++ P1150 Peter 的烟
数据结构·c++·算法
是娇娇公主~2 分钟前
线程池:工作窃取线程池WorkingStealingPool
c++·线程池
CheerWWW4 分钟前
C++学习笔记——函数指针、Lambda表达式、谨慎使用using namespace std、命名空间
c++·笔记·学习
夜猫子ing4 分钟前
如何编写一个CMakelists文件
开发语言·c++
踮起脚看烟花10 分钟前
chapter10_泛型算法
c++·算法
笨笨饿10 分钟前
# 52_浅谈为什么工程基本进入复数域?
linux·服务器·c语言·数据结构·人工智能·算法·学习方法
Code-keys10 分钟前
ADSP/ARM 性能/稳定性排查专栏总述
arm开发·算法·边缘计算·dsp开发
山栀shanzhi14 分钟前
C++四大常见排序对比
c++·算法·排序算法
云栖梦泽19 分钟前
Linux内核与驱动:8.ioctl驱动基础
linux·c++
Allen_LVyingbo28 分钟前
量子测量三部曲:投影测量、POVM 与坍缩之谜—从形式主义到物理图像
算法·性能优化·健康医疗·量子计算·空间计算