算法基础之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");
  }
相关推荐
真的想上岸啊4 分钟前
学习C++、QT---25(QT中实现QCombobox库的介绍和用QCombobox设置编码和使用编码的讲解)
c++·qt·学习
刃神太酷啦12 分钟前
C++ 多态详解:从概念到实现原理----《Hello C++ Wrold!》(14)--(C/C++)
java·c语言·c++·qt·算法·leetcode·面试
山河木马20 分钟前
前端学C++可太简单了:引用
前端·javascript·c++
DoraBigHead26 分钟前
小哆啦解题记 · 数字连续段谜案
算法
wjm04100636 分钟前
C++后端面试八股文
java·c++·面试
幻雨様1 小时前
UE5多人MOBA+GAS 19、创建升龙技能,以及带力的被动,为升龙技能添加冷却和消耗
游戏·ue5
越城1 小时前
C++类与对象(上)
开发语言·c++
✿ ༺ ོIT技术༻1 小时前
剑指offer第2版:链表系列
数据结构·算法·链表
泽02022 小时前
C++之哈希表的基本介绍以及其自我实现(开放定址法版本)
c++
序属秋秋秋2 小时前
《C++初阶之STL》【泛型编程 + STL简介】
开发语言·c++·笔记·学习