算法基础之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");
  }
相关推荐
洛水水8 分钟前
【力扣100题】28. 翻转二叉树
算法·leetcode
雪度娃娃12 分钟前
结构型设计模式——外观模式
c++·设计模式·外观模式
故事和你9118 分钟前
洛谷-【数据结构2-2】线段树2
开发语言·数据结构·算法·动态规划·图论
ghie909019 分钟前
MATLAB 随机蛙跳算法 (SFLA) 优化最小二乘回归
算法·matlab·回归
wuweijianlove20 分钟前
算法优化中的缓存层次结构与内存映射的技术7
算法
故事和你9122 分钟前
洛谷-【数据结构2-2】线段树1
开发语言·javascript·数据结构·算法·动态规划·图论
蜡笔小马23 分钟前
05.C++设计模式-适配器模式
c++·设计模式·适配器模式
code_pgf26 分钟前
Python `asyncio` 与 C++ Fiber 的原理与逻辑分析
c++·人工智能·python
电科一班林耿超27 分钟前
机器学习大师课 第 8 课:端到端项目实战 —— 泰坦尼克号生存预测
人工智能·算法·机器学习
小张成长计划..31 分钟前
【C++】30:C++11之lambda,新的类功能和包装器
c++