编程之美 set 17 拈游戏分析 (2)
题目
有 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)相关推荐
- 编程之美中的NIM游戏及异或性质应用
最近看<编程之美>一书,感叹思维之妙,不过看过之后又在很多数学方面的书里面找到了同样的解法例如<组合数学>.<图论导引>等,之后才知道其实很多书上的算法都是源自数学 ...
- 编程之美 之 程序理解和时间分析 与JOJ 2042
这是<编程之美>的2.20题目,给出一段C#代码,要求不用电脑,理解程序并回答问题.下面是从C#代码中改写成的C++代码: #include <iostream>#includ ...
- 编程之美-第1章 游戏之乐
1. 使CPU占有率画出正弦曲线 linux下的代码: #if 0 /** Q1.1*/ int get_tick_count(){struct timeval tv;gettimeofday(&am ...
- 【编程之美】24点游戏
转自:http://blog.csdn.net/tianshuai1111/article/details/7713640 一,概述 二十四点是一种益智游戏,它能在游戏中锻炼人们的心算,它往往要求人们 ...
- 编程之美——4.11 扫雷游戏的概率
http://blog.csdn.net/fivedoumi/article/details/7705073 题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所 ...
- 2013编程之美资格赛【传话游戏】
时间限制: 1000ms 内存限制: 256MB 描述 Alice和Bob还有其他几位好朋友在一起玩传话游戏.这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位 ...
- 精选的一些《编程之美》相关资料
又要到一年的招聘季了,肯定又有很多人开始啃<编程之美>了吧.这本书从开阔视野的角度来说很好,不过限于篇幅,有的问题并没有讲清楚(甚至问题叙述模棱两可.被标榜为"鼓励同面试官交流以 ...
- java 编程之美_《编程之美—微软技术面试心得》PDF 下载
第1章 游戏之乐--游戏中碰到的题目 1.1 让CPU占用率曲线听你指挥 1.2 中国象棋将帅问题 1.3 一摞烙饼的排序 1.4 买书问题 1.5 快速找出故障机器 1.6 饮料供货 1.7 光影切 ...
- 《编程之美》相关参考资料
转载自:https://blog.csdn.net/wuyuegb2312/article/details/9896831 为了便于查阅,也为了方便后人不必在搜索上浪费时间,我把比较有价值的文章的链接 ...
最新文章
- HTML用cookie实现自动登录,用cookie实现websocket自动登录,session状态保留。
- 收集几个js实现的日期时间控件
- Spring_hibernate整合初步 based in annotation
- BZOJ 2431 HAOI2009 在列的数目的顺序相反 递归
- 这款网络排查工具,堪称神器!
- delphi xe2 project菜单怎么没有加组件功能_交互设计:让人困惑的三大交互组件及用法...
- linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路
- 我终于知道公司前端为啥不加班了…
- Theano 中文文档 0.9 - 6. 更新Theano
- python读取文件夹下所有文件的名字_一键汇总同一文件夹下所有表格,三种小技巧分享给你...
- windows 下 nginx 的反向代理学习整理
- Vue中使用Bscroll @click无法执行的问题
- 苹果生产日期对照表2020_AirPods Pro 出现静电噪音,如何参与苹果免费维修服务计划?...
- 【支持升级官方最新版】西部数码主机代理系统模板源码IDC网站源码虚拟主机代理管理系统
- Ajax请求前显示的等待图标
- 异步调用案例_异步案例研究
- 数据库安全小白紧急求助论坛大神,困扰许久
- cdh hive配置mysql_Hive学习(CDH版Hadoop、Hive安装)
- 1087 花括号展开
- 华为Huawei服务器IBMC默认用户密码
热门文章
- 卡尔曼滤波与组合导航原理_卫星知识科普:一种基于卫星共视的卡尔曼滤波算法!...
- python 网站 源码_在线浏览美图源码,附带python源码
- linux deploy 版本,Linux Deploy
- Leetcode-520. 检测大写字母
- 信息系统项目管理师论文范文-风险管理
- 信息系统项目管理师论文指导(2/3)
- 信息系统项目管理师教程章节重点考点汇总(1)绪论重点
- 生成android证书
- 项目整体管理:制定项目管理计划
- 信息系统项目管理师-信息系统项目整体管理核心知识点思维脑图