算法基础之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");
  }
相关推荐
老鼠只爱大米3 分钟前
LeetCode经典算法面试题 #138:随机链表的复制(节点交织法、哈希表法等五种实现方案解析)
算法·leetcode·链表·随机链表复制·节点交织法
m0_748248654 分钟前
C++正则表达式攻略:从基础到高级应用
java·c++·正则表达式
TracyCoder12310 分钟前
LeetCode Hot100(11/100)——56. 合并区间
算法·leetcode
退休钓鱼选手11 分钟前
[CommonAPI + vsomeip]通信 原理 1
c++·自动驾驶
Hx_Ma1619 分钟前
Leecode题知识点(25,61,82)
算法·leetcode·链表
青槿吖23 分钟前
【趣味图解】线程同步与通讯:从抢奶茶看透synchronized、ReentrantLock和wait/notify
java·开发语言·jvm·算法
CSDN_RTKLIB23 分钟前
【字符编码】源文件编码与字符字节序列
c++
2401_8384725130 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
点云SLAM35 分钟前
似然函数(Likelihood Function)和最大似然估计
算法·机器学习·概率论·数理统计·最大似然估计·似然函数·概率分布
春日见38 分钟前
Docker中如何删除镜像
运维·前端·人工智能·驱动开发·算法·docker·容器