题目大意:

题目给出了两个正数a.b

每次操作,大的数减掉小的数的整数倍。一个数变为0 的时候结束。

谁先先把其中一个数减为0的获胜。问谁可以赢。Stan是先手。

题目思路:

无论a,b的值为多少,局面:[a%b,b] 一定会出现。

双方都足够聪明,无论谁都知道这种局面是必胜局面还是必败局面

若是必败局面操作者为了获胜,直接到达[a%b,b]局面就可以(将必败局留给对方)

若是必胜局操作者为了获胜,到达[a%b+b,b]局面(经过对手操作后,将必胜局面留给自己)

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#define INF 0x3f3f3f3f
#define MAXSIZE 100005using namespace std;int Game(int a,int b)
{int op=1;while(1){if(a < b) swap(a,b);if(a%b==0 || a/b>=2) break;while(a>b && a<2*b){a-=b;op=-op;//swap(a,b);
        }}return op;
}int main()
{int a,b;while(scanf("%d%d",&a,&b),a+b){int op=Game(a,b);if(op==1)printf("Stan wins\n");elseprintf("Ollie wins\n");}return 0;
}

View Code

转载于:https://www.cnblogs.com/alan-W/p/6284209.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 ( 博弈 )

    题意 Stan和Ollie玩游戏,Stan先手.给出两个数字,可以用大数减去小数的整数倍,要求不能减到小于0.谁先将一个数字减到0,谁获胜. 思路 博弈 假设 a > b 比赛的时候想到了关于a ...

  3. HDU 1525 类Bash博弈

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

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

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

  5. HD 1525 Euclid's Game

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

  6. HDU - 1525

    题意:给你两个数,a,b,有两个人轮流进行一次操作, 每次操作可以将大的数减去k倍的小的数,最后不能操作的人输了,问你谁赢了. 思路:我们可以用辗转相除法求出对于每一个状态可以改变几次,这样问题就变成 ...

  7. hdu 1525 博弈

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

  8. 一起开心2020暑假训练第一周

    hdu 1576 A/B oj传送 题解: Poj 1061 青蛙的约会 oj传送 题解: hdu 1525 Euclid's Game oj传送 题解: Poj 3070 Fibonacci oj传 ...

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

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

最新文章

  1. ASP.NET的用户控件
  2. 6 js 比较两个数组的差异_每天一道算法题(js)(3)——寻找两个有序数组的中位数...
  3. python编程语言能干什么-python编程语言的优势与劣势--python能干啥
  4. bzoj1007题解
  5. 系统管理员在企业中的职业定位及发展方向 连载(一)
  6. IntelliJ IDEA 项目开发中各个目录的关系
  7. 一首歌,一种情感,一种心情
  8. 城市APP集成Firebase/Admob/增强现实带PHP管理后台
  9. 7-36 并查集【模板】 (10 分)
  10. android listview的理解,Android ListView的理解
  11. SQLi LABS Less-22
  12. mysql报错01427_ORA-01427问题的分析和解决
  13. java实现deflate算法
  14. [原创]独立模式安装Hive
  15. C语言中指针数组和数组指针
  16. php中的递归调用函数返回值,深入理解php递归函数返回值的正确用法
  17. SpringBoot文件夹压缩下载实现示例
  18. P4234(最小差值生成树 lct维护生成树)
  19. C++ GBD调试
  20. 【折纸】如何折一个装桌面垃圾的纸盒子

热门文章

  1. 老九java线上,老九 - SegmentFault 思否
  2. 数学--数论--数论定理--欧拉定理
  3. 嵌入式基础之----C++
  4. PyTorch1.0 教程 例子和书籍
  5. 谈晶体管的饱和状态和饱和压降
  6. [z] 电子技术的老生常谈 —— 接地
  7. jupyter 共享_可共享的Jupyter笔记本!
  8. 石墨烯将是下一个万亿级别的产业,投资者该如何提前布局?
  9. 按揭买的房,房产证为什么要放在银行,自己要用房产证怎么办?
  10. 信用卡不能提额,是因为使用了招联金融吗?