题干:

Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p = 1, does his multiplication, then Ollie multiplies the number, then Stan and so on. Before a game starts, they draw an integer 1 < n < 4294967295 and the winner is who first reaches p >= n.

Input

Each line of input contains one integer number n.

Output

For each line of input output one line either 
Stan wins. 
or 
Ollie wins. 
assuming that both of them play perfectly.

Sample Input

162
17
34012226

Sample Output

Stan wins.
Ollie wins.
Stan wins.

解题报告:

SG函数的方法目前还不会?

一个题解:

这里用一种推导的方法来进行求解分析如下:Stan选2-9之间的数如果是2,那么Ollie选的范围只能在4-18,这样Stan控制了19 - 4*9;如果是3,那么Ollie选的范围只能在6-27,这样Stan控制了28 - 6*9;如果是4,那么Ollie选的范围只能在8-36,这样Stan控制了37 - 8*9;如果是5,那么Ollie选的范围只能在10-45,这样Stan控制了46 - 10*9;如果是6,那么Ollie选的范围只能在12-54,这样Stan控制了55 - 12*9;如果是7,那么Ollie选的范围只能在14-63,这样Stan控制了64 - 14*9; 如果是8,那么Ollie选的范围只能在16-72,这样Stan控制了73 - 16*9; 如果是9,那么Ollie选的范围只能在18-81,这样Stan控制了82 - 18*9;===============综上:范围在2 – 9   是Stan win!(2-9)范围在9+1 – 9*2   是Ollie win!(10-18)范围在9*2+1 –9*2*9     是Stan win!(19-162)范围在9*2*9+1 –9*2*9*2    是Ollie win!范围在9*2*9*2+1 –9*2*9*2*9    是Stan win!........================相信大家看得出规律了吧,范围左侧是上一个范围的右侧加一,右侧是上一个右侧交替的乘以2和9;

AC代码:

#include<cstdio>
#define ll long long
using namespace std;
ll n;
int main()
{while(~scanf("%lld",&n)) {ll cur = 1;bool flag = 0;//=1代表先手 while(cur<n) {//注意162这种边界,所以不能cur<=nif(!flag) {flag=1;cur*=9;}else {flag=0;cur*=2;}}if(flag) puts("Stan wins.");else puts("Ollie wins.");}return 0 ;
}

AC代码2:

题解

#include <stdio.h>
int main()
{double n;while(~scanf("%lf",&n)){while(n>18)n/=18;if(n>=1&&n<=9)printf("Stan wins.\n");elseprintf("Ollie wins.\n");}return 0;
}

*【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)相关推荐

  1. 【HDU - 1564 】Play a game (博弈问题,找规律,奇偶博弈)

    题干: New Year is Coming!  ailyanlu is very happy today! and he is playing a chessboard game with 8600 ...

  2. HDU1524(博弈--有向无环图SG函数)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1524 题意:在一个有向无环图上有n个顶点,每一个顶点都只有一个棋子,有两个人,每次根据这个图只能将任意一颗 ...

  3. hdu 7092 仓颉造数 (猜测,手模数据找规律,推公式)

    hdu 7092 仓颉造数 分析: 先考虑一个问题,若平均数能转换成 111 ,那么调和平均数也能转换成 111 ,反之亦然 所以,问题就转换成了,生成平均数,判断平均数是否会出现 111 ,至于能能 ...

  4. hdu 5273 Dylans loves sequence 逆序数简单递推

    Dylans loves sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  5. 组合博弈游戏 - SG函数和SG定理

    转载来自:http://blog.csdn.net/luomingjun12315/article/details/45555495 在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜 ...

  6. HDU - 1284 钱币兑换问题 (找规律/完全背包)

    Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Out ...

  7. 【小组专题二:博弈论入门综述(1)】NP状态 | SG函数 | 巴什博奕、威佐夫博弈、斐波那契博弈、Nim游戏、SJ定理

    博弈论综述[1] 前言 博弈与博弈论 博弈树 NP状态 SG函数(Sprague-Grundy) Sprague-Grundy Theorem 巴什博奕 Bash Game 威佐夫博弈 扩展威佐夫博弈 ...

  8. HDU 1517 A Multiplication Game 巴什博弈

    题意:2 个人玩游戏,给定一个数n,从 1 开始,轮流对数进行累乘一个数(2~9中取), 直到第一次等于或超过n为赢. 思路:1)找规律 如果n是 2 ~ 9 ,Stan 必胜. 如果输入是 10~1 ...

  9. hdu与poj题目分类

    POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...

最新文章

  1. 在2020年到来之前,你应该知道的10大科技趋势预测
  2. ITK:计算灰度图像的梯度幅度
  3. VMware Fusion虚拟机的低分辨率问题(亲测有效)
  4. php生成 sku_高并发下,php与redis实现的抢购、秒杀功能
  5. Java ObjectInputStream close()方法与示例
  6. 亲密关系沟通-【匹配度】调整沟通模式
  7. 20191130_C6H6(GT)预测
  8. Python+Appium自动化搭建新手教程
  9. 怎么给图片加水印?四个步骤搞定
  10. linux 中signal机制如何应用(一)
  11. 进销存仓库管理软件的应用场景与效益
  12. 安全模式没有计算机图标不见了怎么办,win10杀毒图标不见了怎么办?win10安全中心图标没了的处理方法...
  13. SSH免密登录(笔记)
  14. 做设计师要用到的工具软件
  15. 记录一些密码学中常用符号
  16. 【Kaggle】如何举办你的比赛?
  17. ODOO芯片制造委外加工业自动化解决方案
  18. mac tcp调试命令
  19. 卡图星小机器人怎么过_《星之卡比星球机器人》图文攻略 全收集图文流程攻略...
  20. python 利用百度推广API接口,每日调整关键词价格,关键词点击率大于10%的进行降低价格和点击率小于4%进行增加价格

热门文章

  1. 树状数组的区间修改+查询
  2. python输出运行时间表_Python编程第十二课 了解程序运行的时间
  3. mysql.w002_mysql简单例子
  4. 上传本地项目到gitee_用git上传本地文件到码云gitee的方法
  5. php 自带缓存,封装ThinkPhP自带的缓存机制
  6. JS循环执行函数setInterval
  7. java keytool nginx_java 自签名证书转 nginx 所需证书
  8. php while mysql_我怎么能避免在PHP的While循环中使用MySQL查询
  9. 深入分析MFC文档视图结构(项目实践)
  10. A5D2应用程序无法启动问题