题目

有 N 块石头河两个玩家 A 和 B. A 先将石头分成若干堆, 然后按照 BABABA... 的顺序轮流取石块, 能将剩下的石头依次取光的玩家获胜. 每次取石头时, 每个玩家只能取一堆的 m(m>=1) 个石头

思路

1. 依然举例子.

当 N = 1 时, 输. N = 2 时, 可以分成 1, 1. 赢

当 N = 3 时, 分成 1, 2. 输

当 N = 4 时, 分成 2, 2, 赢

当 N = 5 时, (1,1,3) (1,2,2) (2,3) 都是输

总结

1. 稳赢叫做安全局面. 能一步跳到安全局面的叫做不安全局面. 不安全局面都是稳输的

2. 安全局面不能直接跳到安全局面, 即安全局面的任何走动都会跳到不安全局面

3. 不安全局面总可以一步跳到安全局面

因此当 N 为偶数时, 总是安全局面. 总是可以走到 (i,i) 的局面, 而 (1,1) 又是安全局面

当有奇数个时, 摆放成全1的形式, 总是先拿的赢

4. 使用亦或运算

当 M 为偶数时, 我们的取胜策略是把 M 分成相同的两份, 这样就能取胜

开始 (M1, M1) XOR(M1,M1) = 0

中途 (M1, M2) XOR(M1,M2) != 0

我方 (....)                          = 0

最终 我方胜

当 M 为奇数时, 摆放成全 1 的形式, 先拿着必赢

当 M 为奇数时,

开始 (M1, M2...Mn) XOR(...) != 0 比如不为 0 , 因为至少有 1 位为1

而当 XOR != 0 时, 总是可以将其一步变成 0

而 XOR == 0 时, 任意的挪动都会将其变成非 0

所以, 当 M 为奇数时, 先拿着必赢

编程之美 set 17 拈游戏分析 (2)相关推荐

  1. 编程之美中的NIM游戏及异或性质应用

    最近看<编程之美>一书,感叹思维之妙,不过看过之后又在很多数学方面的书里面找到了同样的解法例如<组合数学>.<图论导引>等,之后才知道其实很多书上的算法都是源自数学 ...

  2. 编程之美 之 程序理解和时间分析 与JOJ 2042

    这是<编程之美>的2.20题目,给出一段C#代码,要求不用电脑,理解程序并回答问题.下面是从C#代码中改写成的C++代码: #include <iostream>#includ ...

  3. 编程之美-第1章 游戏之乐

    1. 使CPU占有率画出正弦曲线 linux下的代码: #if 0 /** Q1.1*/ int get_tick_count(){struct timeval tv;gettimeofday(&am ...

  4. 【编程之美】24点游戏

    转自:http://blog.csdn.net/tianshuai1111/article/details/7713640 一,概述 二十四点是一种益智游戏,它能在游戏中锻炼人们的心算,它往往要求人们 ...

  5. 编程之美——4.11 扫雷游戏的概率

    http://blog.csdn.net/fivedoumi/article/details/7705073 题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所 ...

  6. 2013编程之美资格赛【传话游戏】

    时间限制: 1000ms 内存限制: 256MB 描述 Alice和Bob还有其他几位好朋友在一起玩传话游戏.这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位 ...

  7. 精选的一些《编程之美》相关资料

    又要到一年的招聘季了,肯定又有很多人开始啃<编程之美>了吧.这本书从开阔视野的角度来说很好,不过限于篇幅,有的问题并没有讲清楚(甚至问题叙述模棱两可.被标榜为"鼓励同面试官交流以 ...

  8. java 编程之美_《编程之美—微软技术面试心得》PDF 下载

    第1章 游戏之乐--游戏中碰到的题目 1.1 让CPU占用率曲线听你指挥 1.2 中国象棋将帅问题 1.3 一摞烙饼的排序 1.4 买书问题 1.5 快速找出故障机器 1.6 饮料供货 1.7 光影切 ...

  9. 《编程之美》相关参考资料

    转载自:https://blog.csdn.net/wuyuegb2312/article/details/9896831 为了便于查阅,也为了方便后人不必在搜索上浪费时间,我把比较有价值的文章的链接 ...

最新文章

  1. HTML用cookie实现自动登录,用cookie实现websocket自动登录,session状态保留。
  2. 收集几个js实现的日期时间控件
  3. Spring_hibernate整合初步 based in annotation
  4. BZOJ 2431 HAOI2009 在列的数目的顺序相反 递归
  5. 这款网络排查工具,堪称神器!
  6. delphi xe2 project菜单怎么没有加组件功能_交互设计:让人困惑的三大交互组件及用法...
  7. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路
  8. 我终于知道公司前端为啥不加班了…
  9. Theano 中文文档 0.9 - 6. 更新Theano
  10. python读取文件夹下所有文件的名字_一键汇总同一文件夹下所有表格,三种小技巧分享给你...
  11. windows 下 nginx 的反向代理学习整理
  12. Vue中使用Bscroll @click无法执行的问题
  13. 苹果生产日期对照表2020_AirPods Pro 出现静电噪音,如何参与苹果免费维修服务计划?...
  14. 【支持升级官方最新版】西部数码主机代理系统模板源码IDC网站源码虚拟主机代理管理系统
  15. Ajax请求前显示的等待图标
  16. 异步调用案例_异步案例研究
  17. 数据库安全小白紧急求助论坛大神,困扰许久
  18. cdh hive配置mysql_Hive学习(CDH版Hadoop、Hive安装)
  19. 1087 花括号展开
  20. 华为Huawei服务器IBMC默认用户密码

热门文章

  1. 卡尔曼滤波与组合导航原理_卫星知识科普:一种基于卫星共视的卡尔曼滤波算法!...
  2. python 网站 源码_在线浏览美图源码,附带python源码
  3. linux deploy 版本,Linux Deploy
  4. Leetcode-520. 检测大写字母
  5. 信息系统项目管理师论文范文-风险管理
  6. 信息系统项目管理师论文指导(2/3)
  7. 信息系统项目管理师教程章节重点考点汇总(1)绪论重点
  8. 生成android证书
  9. 项目整体管理:制定项目管理计划
  10. 信息系统项目管理师-信息系统项目整体管理核心知识点思维脑图