题目链接:点击查看

题目大意:给出初始的两个数字,每一次操作都要在规则下进行:令较大的数减去任意倍较小的数,必须保证不能出现负数,先减到零者获胜,问谁能获胜

题目分析:这个题目说是博弈我感觉更像是找规律,我们来分析一下这个题目

首先我们设(a,b)中b永远比a大,那么分为两种情况:

  1. 当a<b&&2*a>b时,只能进行一种操作,即b-=a,模拟即可
  2. 当a<b&&2*a<b时,b有至少一种操作可以选择了,我们设此时b最多可以减去x倍的a,那么我们不妨先令b减去(x-1)倍的a:
    1. 在b减去(x-1)倍的a之后,因为此后的b仍然大于a,所以接下来的操作必然只有再让b减去a这一种操作,就回到了第一种讨论的情况之中,如果当前情况为必败状态的话,那么原状态(a,b)就是必胜态
    2. 接上条所述,若在b减去(x-1)倍的a之后,当前状态变为了必胜状态的话,那么就意味着一开始b减去x倍的a是必败状态,那么我们大可在一开始就减去x倍的a即可

综上所述,我们可以模拟整个过程,直到出现了结果,或者出现了b>2*a的状态就可以停止了,若b>2*a之后,先手就可以操控整个游戏的局面了,所以此时肯定是先手必胜

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=4e5+100;int main()
{
//  freopen("input.txt","r",stdin);int a,b;while(scanf("%d%d",&a,&b)!=EOF&&a+b){int ans=0;while(1){if(a>b)//保证b>aswap(a,b);if(b%a==0||b-a>a)break;b-=a;ans^=1;if(a>b)swap(a,b);}if(ans)printf("Ollie wins\n");elseprintf("Stan wins\n");} return 0;
}

POJ - 2348 Euclid's Game(博弈)相关推荐

  1. POJ 2348 Euclid's Game(博弈)题解

    题意:有a,b两个数字,两人轮流操作,每次可以选择两个之中较小的数字,然后另一个数字减去选择数字的任意倍数(不能减到负数),直到其中一个为0,不能操作为败 思路:这题用博弈NP思想,必败点和必胜点之间 ...

  2. 【博弈论】POJ[2348]Euclid's Game

    好久不写博客了 最近在佳木斯培训 蒟蒻QAQ 今天来揭露一下这个虚伪的世界 [问题描述] Two players, Stan and Ollie, play, starting with two na ...

  3. 博弈最高位POJ 1704(Georgia and Bob-Nim博弈)

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  4. HDU 1525 - Euclid's Game ( 博弈 )

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

  5. poj 1067 取石子游戏(博弈+威佐夫博奕(Wythoff Game))

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 29959   Accepted: 9818 Descriptio ...

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

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

  7. (转载)--SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

  8. 组合游戏 - SG函数和SG定理

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

  9. SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

最新文章

  1. axure动态登录和html5,Axure8原型设计实战案例:如何实现登录功能?
  2. 100%的BAT招聘岗位都考的知识,你精通了吗?
  3. python推荐系统-RecQ-Python推荐系统框架
  4. 用Visual C#来清空回收站(2)
  5. WCF分布式开发步步为赢(14):WCF安全编程--基本概念
  6. Java多线程系列--“JUC原子类”
  7. 线性代数及其应用 知识整理
  8. plc编程及应用_西门子PLC编程及应用
  9. python常用文件操作和解析xml文件
  10. Unitue_逆流的处事原则
  11. 基于蒙特卡洛法的规模化电动车有序充放电及负荷预测(PythonMatlab实现)
  12. 游戏策划笔记:交互分析
  13. 浅谈MES系统追溯功能五大关键作用
  14. stm8s003中串口中断问题
  15. 图像处理之图像去雾中文综述性论文
  16. krait和kryo_HBase和Kryo混合使用时出现的jar包冲突
  17. 小米最大的竞争对手不是苹果而是华为
  18. 2020年chx的计算机保研之路系列(3)——中科院计算所(获得offer)
  19. GitLab搭建局域网改外网
  20. Android-Dex分包最全总结:含Facebook解决方案,移动app开发

热门文章

  1. zipkin server 数据持久化问题
  2. 由一个问题引发的思考
  3. Redis Hash 哈希 结构
  4. 微信支付 - 提供支付中心商户订单查询
  5. Spring简介-Spring的优势
  6. weblogic获取文件的路径问题
  7. 使用匿名内部类创建线程
  8. MySQL服务器参数介绍
  9. 【报错笔记】Eclipse导入Maven项目时pom.xml报错,项目上有红感叹号。
  10. CoolQ/DingTalk 实现CI/CD消息推送到群