题意

Stan和Ollie玩游戏,Stan先手。给出两个数字,可以用大数减去小数的整数倍,要求不能减到小于0。谁先将一个数字减到0,谁获胜。

思路

博弈
假设 a > b
比赛的时候想到了关于a - b > b ( a > 2 * b )状态下,可以决定必胜、必败态,故若a > 2 * b为必胜态。
若a%b == 0, a可以减去b的整数倍变为0,故谁达到这个状态即必胜态

但是当时没考虑周全,这里应该用循环求解,谁达到必胜态则退出循环。

AC代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;int main()
{int a, b;while( scanf("%d%d", &a, &b) == 2 && a && b ){if( a < b ) swap(a, b);bool first = true;for(;;){if( a % b == 0 || a > 2 * b ) break;a -= b;swap(a,b);first = !first;}if( first ) puts("Stan wins");else puts("Ollie wins");}return 0;
}

转载于:https://www.cnblogs.com/JinxiSui/p/9740556.html

HDU 1525 - Euclid's Game ( 博弈 )相关推荐

  1. hdu 1525 Euclid‘s Game

    hdu 1525 文章目录 Problem Description 题意: 题解: 代码: Problem Description Two players, Stan and Ollie, play, ...

  2. HDU 1525 Euclid's Game

    题目大意: 题目给出了两个正数a.b 每次操作,大的数减掉小的数的整数倍.一个数变为0 的时候结束. 谁先先把其中一个数减为0的获胜.问谁可以赢.Stan是先手. 题目思路: 无论a,b的值为多少,局 ...

  3. HDU 1525 类Bash博弈

    给两数a,b,大的数b = b - a*k,a*k为不大于b的数,重复过程,直到一个数为0时,此时当前操作人胜. 可以发现如果每次b=b%a,那么GCD的步数决定了先手后手谁胜,而每次GCD的一步过程 ...

  4. hdu 1907 Jone 尼姆博弈

    题目:点击打开链接 John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  5. 【 HDU - 1525 】Euclid's Game(较难找规律,玄学博弈,分析必败点必胜点)

    题干: Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, su ...

  6. hdu 1525 博弈

    欧几里德问题上的博弈,理解后不难. /* * hdu1525/win.cpp * Created on: 2011-11-11 * Author : ben*/#include <cstdio& ...

  7. HD 1525 Euclid's Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1525 Problem Description Two players, Stan and Ollie, ...

  8. HDU - 1907 John(尼姆博弈变形)

    题目链接:点击查看 题目大意:给出 n 堆石子,两个人轮流取,至少取一个,取到最后一个的人输 题目分析:尼姆博弈是取到最后一个的人获胜,这个题正好反着 一个很显然的奇异局势就是,每一堆的石子的个数都为 ...

  9. POJ - 2348 Euclid's Game(博弈)

    题目链接:点击查看 题目大意:给出初始的两个数字,每一次操作都要在规则下进行:令较大的数减去任意倍较小的数,必须保证不能出现负数,先减到零者获胜,问谁能获胜 题目分析:这个题目说是博弈我感觉更像是找规 ...

最新文章

  1. python操作系统-python获取操作系统平台、版本及架构
  2. 什么是死锁?死锁产生的四个必要条件?如何避免与预防死锁?
  3. C# 字符串操作学习总结
  4. CapcityScheduler配置方法(还没弄完)
  5. 如何用Linux命令行管理网络:11个你必须知道的命令
  6. 推荐 21 个顶级的 Vue UI 库
  7. 全球与中国雷达信标市场深度研究分析报告
  8. Windows管理用户账号
  9. Java面试宝典(2019版)
  10. 汇编指令lmm_动画视频角色的LMM神经网络
  11. 查看python openCV的版本号
  12. 使用 VMware Server 在 Linux 上安装 Oracle RAC 10g
  13. 大鹏教育视频下载(手动操作)
  14. 用python制作微信机器人程序编写_Python制作微信聊天机器人
  15. 开篇:解决IE9字体模糊的问题(又称无法关闭ClearType)
  16. C++类模板和模板类
  17. jquery1.0版本代码解读 each extend
  18. 乐高机器人 搭建钟摆_乐高机器人初级课程表X
  19. 怎么实现EDIUS 8中自动保存的关闭
  20. 机器学习应用篇(八)——基于BP神经网络的预测

热门文章

  1. linux下文件夹压缩解压.tar , .gz , .tar.gz , .bz2 , .tar.bz2 , .bz , .tar.bz , .zip , .rar
  2. BI推荐8款优秀的app
  3. 一道经典的SQL面试题
  4. sqlite随机读取N条记录
  5. 项目中除了需求外还需要知道的问题
  6. Chapter8 用例建模
  7. mechanism and analysis
  8. 和组内作者consent的模板 亲测有效
  9. shanghai road map
  10. windows编程,消息函数中拦截消息的问题