算法基础之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");
  }
相关推荐
白杨尚青5 分钟前
C++入门篇(十一):string(中)——容量与增删改查:一篇吃透所有常用接口(万字详解)
java·开发语言·c++
学术小李12 分钟前
cudaMalloc第一个参数为何是指针的指针
算法
kukubuzai14 分钟前
二分查找系列一
数据结构·算法·leetcode
老歌老听老掉牙19 分钟前
动态规划:从递归到最优决策的算法艺术
算法·动态规划
朔北之忘 Clancy21 分钟前
2024 CSP-J 第二轮真题解析
c++·算法·青少年编程·noip·csp·信奥赛·noi
Lazionr24 分钟前
set和map的使用——从基础接口到实际应用
c++
重生之小比特27 分钟前
【C++进阶】哈希表实现
开发语言·c++·哈希
m0_3807438739 分钟前
VisualStudio中OpenCV的创建与配置使用小结
开发语言·c++
凉茶钱1 小时前
【C++】动态内存管理完整解析:从内存划分到 new delete 底层原理
c语言·开发语言·c++·内存管理·动态内存