算法基础之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");
  }
相关推荐
jianfeng_zhu9 分钟前
整数数组匹配
数据结构·c++·算法
Chrikk10 分钟前
现代化 C++ 工程构建:CMake 与包管理器的依赖治理
开发语言·c++
ozyzo15 分钟前
例题
c++
smj2302_7968265219 分钟前
解决leetcode第3782题交替删除操作后最后剩下的整数
python·算法·leetcode
世转神风-1 小时前
qt-kits-警告:No C++ compiler,无法正常解析工程项目.pro文件
开发语言·c++
王老师青少年编程1 小时前
csp信奥赛C++标准模板库STL(12):C++ STL 中的 next_permutation详解
c++·stl·排列·标准模板库·csp·信奥赛·permutation
LYFlied1 小时前
【每日算法】LeetCode 136. 只出现一次的数字
前端·算法·leetcode·面试·职场和发展
唯唯qwe-2 小时前
Day23:动态规划 | 爬楼梯,不同路径,拆分
算法·leetcode·动态规划
做科研的周师兄2 小时前
中国土壤有机质数据集
人工智能·算法·机器学习·分类·数据挖掘
深盾科技2 小时前
融合C++与Python:兼顾开发效率与运行性能
java·c++·python