题意:开始的时候p=1,2个人轮流对p进行操作,每次操作中,他们可以选择把p乘上一个数,这个数的范围是2-9。现在的问题是,给你一个n,两人轮流操作,谁先把p操作到p>=n谁就获胜,两人都采用最优策略,问谁获胜。

根据给定的n,可以找出一些必胜、必败的区间。不如说给出的n是162,那么必败的区间是[18,161],必胜的区间是[9,17]。显然先手一次就可以把p的值直接变成9,所以先手可以获胜。然后去递推这些区间就行了,直到递推到区间左边的值为小于10的数。然后判断一下这个区间是必胜的还是必败的区间,被谁取到就可以了。

 1 #include <iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     long long int x;
 7     while(cin>>x){
 8         int cnt = 0,tmp;
 9         while(x >= 10){
10             cnt++;
11             if(cnt&1)  tmp = 9;
12             else       tmp = 2;
13             int t = x % tmp;
14             x /= tmp;
15             if(t)   x++;
16             //cout<<"x="<<x<<endl;
17         }
18         if(cnt%2 == 0 || (cnt%2 == 1 && x >= 3))   cout<<"Stan wins.\n";
19         else    cout<<"Ollie wins.\n";
20     }
21     return 0;
22 }

View Code

转载于:https://www.cnblogs.com/zhexipinnong/p/3413221.html

HDU 1517 A Multiplication Game相关推荐

  1. HDU 1517 A Multiplication Game 巴什博弈

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

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

    题干: Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers ...

  3. HDU 4920 Matrix multiplication(矩阵相乘)

    各种TEL,233啊.没想到是处理掉0的情况就能够过啊.一直以为会有极端数据.没想到居然是这种啊..在网上看到了一个AC的奇妙的代码,经典的矩阵乘法,仅仅只是把最内层的枚举,移到外面就过了啊...有点 ...

  4. 杭电OJ分类题目(3)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...

  5. 【博弈论】博弈论题单题解

    会不断更新的(咕咕咕) 题目难度大致满足非降性 博弈论真是深坑啊,填不动了,还有Nim积.Every-SG游戏等等等等很多题型还不会,先去学别的了 涉及知识: SG函数及SG定理:传送门 博弈论知识总 ...

  6. [kuangbin]各种各样的题单

    [kuangbin]各种各样的题单 专题1 简单搜索 POJ 1321 POJ 2251 POJ 3278 POJ 3279 POJ 1426 POJ 3126 POJ 3087 POJ 3414 F ...

  7. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

  8. 每日打卡 2017.04.02 博弈论专题

    https://vjudge.net/contest/156519#overview 打表:比如求斐波那契的第k项,k<=1000,很多case,这时可以预处理的时候把1-1000全部求出来并储 ...

  9. 博弈论与sg函数入门

    记录一点结论性的东西,推导见百度吧. 首先博弈的前提是双方"绝对理智". 一般的胜负博弈游戏来说,有以下几点:(注意必胜必败是针对这回合操作的人) 所有终结状态为必败点(比如五子棋 ...

最新文章

  1. linux remote
  2. go语言实现排序算法
  3. 全卷积神经网路【U-net项目实战】Unet++
  4. 本地Git连接服务器git不用每次输入用户名和密码的方法
  5. ilpimage to bitmap
  6. Matlab-使用逻辑值进行索引
  7. php分页教程,php 如何分页 教程
  8. 公司绝不会告诉你的20大秘密
  9. 自然辩证法与计算机科学的关系,科学技术与自然辩证法的关系 毕业论文
  10. Mysql面试题(100+)
  11. Unity Shader学习记录第一章
  12. 数据结构(计算机存储、组织数据方式)
  13. 我花了20年研究华为,发现了这些秘密……
  14. postgreSQL数据库的监控及数据维护
  15. Typora软件百度网盘下载地址
  16. 软件项目管理师复习指南四:法律法规标准化
  17. 诡异的Connection reset
  18. C++上机报告(示例)
  19. html实现log函数,math。h中的log函数的应用
  20. 教你一秒钟画N多人像素描

热门文章

  1. 日常生活小技巧 -- markdown编辑器
  2. hdu1058(dp||优先队列)
  3. hdu1156(简单线段树 模板题)
  4. android创建avd,详解如何创建和使用AVD
  5. 大数据入门基础教程系列
  6. AndroidLinker与SO加壳技术之下篇
  7. 静态编译qemu_使用QEMU chroot进行固件本地调试
  8. java outputstream stringbuffer_InputStream 和OutputStream
  9. python操作mongodb语法_python 操作MongoDB
  10. python发送短信接口_python发送短信和发送邮件