HDU 1517 (类巴什博奕) A Multiplication Game
如果n在[2, 9]区间,那么Stan胜。
如果n在[10, 18]区间,那么Ollie胜,因为不管第一次Stan乘上多少,第二次Ollie乘上一个9,必然会得到一个不小于18的数。
如果n在[19, 162]这个区间呢?
比如说n=19,那么Stan乘上个2,不管Ollie怎么乘,Ollie得到的数必然在[4, 18]这个区间里面,而这里的任意一个数乘上9的话,必然会得到一个不小于19的数,Stan胜。
再比如n=162,Stan最开始乘上一个9,就将Ollie乘完以后的数限制在[18, 81]这个区间里边,而这里的任何一个数乘上9,必然会得到一个不小于162的数,Stan胜。
所以[19, 162]是Stan的必胜区间。
为了更方便理解,再举两个例子:
n=163的时候,不管第一步Stan乘的是多少,Ollie总可以将第二次得到的数限制在[10, 18]这个范围内,那么Stan乘完以后的数在[20, 162]这个范围,最后Ollie乘上个9就赢了。
n=324的时候,Ollie总可以将第二次得到的数限制在[18, 35],这样Stan操作完得到的数就在[36, 315],最后Ollie乘上个9就赢了。
说了这么多就是说,我们每次要想办法限制对手下一次操作以后的区间,使得区间左边界不能太小,否则下一步自己就不能到达终止状态;右边界也不能太大,否则对手会到达终止状态。
总结一下规律就是[2, 9]是先手必胜,[10, 18]后手必胜,[19, 162]先手必胜,[163, 324]后手必胜。
#include <cstdio> int main()
{
double n;
while(scanf("%lf", &n) == )
{
while(n > ) n /= ;
printf("%s\n", n > ? "Ollie wins." : "Stan wins.");
} return ;
}
代码君
HDU 1517 (类巴什博奕) A Multiplication Game的更多相关文章
- 悼念512汶川大地震遇难同胞——选拔志愿者 HDU 2188 博弈论 巴什博奕
悼念512汶川大地震遇难同胞--选拔志愿者 HDU 2188 博弈论 巴什博奕 题意 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队 ...
- HDU 2149-Public Sale(巴什博奕)
Public Sale Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- hdu 2149 (巴什博奕)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2149 Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的 ...
- HDU 4764 Stone(巴什博奕)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- HDU 2188 悼念512汶川大地震遇难同胞――选拔志愿者(巴什博奕)
选拔志愿者 题意: 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队,治疗和防疫的医护人员,以及进行心理疏导的心理学专家.根据要求,我 ...
- HDU 1851 (巴什博奕 SG定理) A Simple Game
这是由n个巴什博奕的游戏合成的组合游戏. 对于一个有m个石子,每次至多取l个的巴什博奕,这个状态的SG函数值为m % (l + 1). 然后根据SG定理,合成游戏的SG函数就是各个子游戏SG函数值的异 ...
- (step8.2.4)hdu 1846(Brave Game——巴什博奕)
题目大意:输入一个整数t,表示测试用例是.接着输入2个整数n,m.分别表示这堆石头中石头的个数,和每次所能取得最大的石头数.判断那一方为赢家 解题思路: 1)这是一道简单的巴什博弈: 所谓巴什博弈,是 ...
- HDU 2897 邂逅明下(巴什博奕变形)
巴什博奕的变形,与以往巴什博奕不同的是,这里给出了上界和下界,原先是(1,m),现在是(p,q),但是原理还是一样的,解释如下: 假设先取者为A,后取者为B,初始状态下有石子n个,除最后一次外其他每次 ...
- HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(基础巴什博奕)
最最最基础巴什博奕 #include<stdio.h> #include<iostream> #include<cstring> #include<cmath ...
随机推荐
- 重构:CSS也面向对象
最初接触到面向对象的CSS还是因为项目中的CSS已经超过八千行,缺乏约束和管理,在近期或者是不远的将来,有迫切的要求需要重构.在前端重构中,我们已经讨论过了JavaScript面向对象的重构,在这个时 ...
- 十个实用但IE不支持的CSS属性
对IE浏览器尤其是IE6的抱怨基本已进入麻痹状态,偶尔甚至产生非常消极的想法:这个世界只有一个浏览器就好了,哪怕这唯一的浏览器就是IE6.当然,这样的想法是非常病态的,马上打消.本文里面,介绍了10个 ...
- 快速编写HTML,CSS代码的有力工具Emmet插件
Emmet 是一个编辑器插件,它以一种简写的语法规则可用于快速编写html或css文档内容,它支持多种编辑器. 从官网:http://emmet.io/ 可下载各个编辑器的插件.notepad++ 插 ...
- 【五】PHP数组操作函数
1.输出数组的结构:bool print_r(数组); $arr=array('jack','mike','tom'); print_r($arr);//Array ( [0] => jack ...
- 《Thinking in C++》学习笔记(一)【第二章】
第二章 对象的创建与使用 2.1语言的翻译过程 翻译器分为两类:解释器(interpreter)和编译器(compiler). 2.1.1解释器 解释器将源代码转化成一些动作(它可由许多机器指令组成) ...
- .htaccess的基本作用及相关语法介绍
.htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令. .htaccess主要的作用有:URL重写.自定义错误页面.MIME类型配置以及访问权限控制等.主要体现在伪静态的应 ...
- zoj 3591 Nim 博弈论
思路:先生成序列再求异或,最多的可能为n*(n+1)/2: 在去掉其中必败的序列,也就是a[i]=a[j]之间的序列. 代码如下: #include<iostream> #include& ...
- js的正则表达式
正则表达式(regular expression)是一中描述字符模式的对象,js的RegExp类表示正则表达式,String与RegExp都定义了相应的方法来操作正则表达式,比如模式匹配,文本检索和替 ...
- VS输入法问题
问题描述:启动VS,打开Winform等的界面设计,无法为控件输入中文,另外,运行程序,无法在TextBox等控件中输入中文: 本人的系统环境:Win7旗舰版,VS2008.VS2010和VS2012 ...
- [C#] 區分 abstract、virtual、override 和 new
abstract.virtual.override和new是在類別的繼承關係中常用的四個修飾方法的關鍵字,在此略作總結. 1. 常用的中文名稱: n abstract => 抽象方法. n ...