题意:有a,b两个数字,两人轮流操作,每次可以选择两个之中较小的数字,然后另一个数字减去选择数字的任意倍数(不能减到负数),直到其中一个为0,不能操作为败

思路:这题用博弈NP思想,必败点和必胜点之间的转化。

我们假设当前状态为(x,y)其中x>=y,那么必有以下任一状态:

1. x < 2 * y:那么这是只能执行一个操作x - y,如果这个操作之后变成必败态,那么当前为必胜态;反之亦然。

2. x >= 2 * y:显然此时有多种选择,假设x = k * y,如果x - (k - 1) * y就变成了第一种情况,如果x - k  * y就变成了第一种情况操作后的情况,显然这其中有一个是必胜态,那么此时情况2必然是必胜情况。

参考:Euclid's Game(poj2348+博弈)

代码:

#include<set>
#include<map>
#include<stack>
#include<cmath>
#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
typedef long long ll;
const int maxn = 1e6 + 10;
const int seed = 131;
const ll MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
using namespace std;int main(){ll a, b;while(~scanf("%lld%lld", &a, &b) && a + b){int times = 0, num = 0;while(a != 0 && b != 0){times++;if(a > b) swap(a, b);num = b / a;if(num >= 2) break;b -= a;}if(times & 1) printf("Stan wins\n");else printf("Ollie wins\n");}return 0;
}

转载于:https://www.cnblogs.com/KirinSB/p/9697250.html

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

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

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

  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. iOS身份证号码识别
  2. mwArray与C++接口
  3. VC++学习(15):多线程
  4. 网页设计的css样式,网页设计引入CSS样式的五种方式_css
  5. mysql 5.6密钥_MySQL的密钥文件不正确
  6. linux编译c gedit,[2018年最新整理]LINUX-Gedit文本编辑器.ppt
  7. 【2019牛客暑期多校训练营(第二场)- F】Partition problem(dfs,均摊时间优化)
  8. 查看地区的ip段_「教程」CloudFlare 自选 IP优化网站速度
  9. sentinel 端口_Spring Cloud Alibba教程:Sentinel的使用
  10. 网站开启 IPv6 访问,测试是否支持 IPV6
  11. 【 Linux 网络虚拟化 】Netns
  12. 富士康已看到芯片短缺开始缓解迹象 预计下半年会有改善
  13. 弦图(Echarts)
  14. 目标检测算法综述(近20年)
  15. 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件怎么样,有独立卫生间和空调吗...
  16. win10系统怎么查看电脑配置,win10电脑配置查看
  17. 北大计算机科学系 97届,北大一专业:六代单传、一人旷课全系放假,毕业照只有一个人...
  18. vscode 使用beautify插件格式化.vue文件
  19. 心理测试详解:猴子小鸟蛇包
  20. 计算机考研11408总分418上岸攻略

热门文章

  1. 笔记本windows7设置WIFI教程(超详细)
  2. linux java ssl_linux系统下安装ssl证书(tomcat)
  3. java按键修改_修改键位映射,打造自己的个性键盘 [转自赵翔鹏的Blog]
  4. layer php弹出层,layer官方演示与讲解(jQuery弹出层插件)
  5. 科密a1无法连接数据库_支持无线图传的稳定器——致迅A1-pro图传稳定器
  6. mybatis 带分号批量sql_请查收,32 道 MyBatis 的高频面试题已答完
  7. lisp编程 滑动轴承的auto_基于Visual Lisp的滑动轴承设计
  8. Uncaught ReferenceError: FileAsyncWriter is not defined
  9. 数据库笔记05:创建与管理数据库
  10. c++ namespace_c++语法2、c执行命名空间输入输出