题目大意:

给定2个数a , b,假定b>=a总是从b中取走一个a的整数倍,也就是让 b-k*a(k*a<=b)

每人执行一步这个操作,最后得到0的人胜利结束游戏

(0,a)是一个终止态P(必胜态)

始终假设b>=a

那么(a,b)b%a==0 , 那么就是 必败态 N

如果2*a>b>a 那么只能选择进入 (a , b-a)不确定什么状态

因为每个人都很聪明,所以对于碰到一个a ,b的局面

如果 b>a*2 , 那么应该知道 (a , b%a) 是不是一个必胜态,如果不是,那么这个聪明人就总会进入(a , b%a+a) ,就能逼迫对方进入 (a , b%a) 这个必败态

如果 (a , b%a) 是一个必胜态,那么聪明人就会自己进入这个状态

所以 b>2*a的时候,下个人肯定是必胜的,也就是下个人必然进入必胜态,所以这是一个必败态

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; bool dfs(int a , int b)
{
if(a>b) swap(a , b);
if(a == ) return true;
if(b%a == || b > *a) return false; bool flag1 = dfs(a , b%a);
bool flag2 = false;
if(b > *a) flag2 = dfs(a , b%a+a);
if(flag1 || flag2) return false;
return true;
} int main()
{
// freopen("a.in" , "r" , stdin);
int a,b;
while(scanf("%d%d" , &a , &b) , a||b)
{
if(dfs(a , b)) puts("Ollie wins");
else puts("Stan wins");
}
return ;
}

最新文章

  1. 三种常用的MySQL建表语句(转)
  2. 20个设计精致的用户界面 PSD 源文件免费下载
  3. c++中的数据类型
  4. 华东交通大学2016年ACM“双基”程序设计竞赛 1003
  5. Note of IOS 7 - Views
  6. A Tour of Go Switch with no condition
  7. ECSTORE2.0 下载 (变量标签)
  8. (简单) POJ 3667 Hotel,线段树+区间合并。
  9. 最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例
  10. 【Android Developers Training】 60. 在你的UI中显示位图
  11. node-Telnet
  12. 31.Linux-wm9876声卡驱动(移植+测试)
  13. Ubuntu 16.04 启用 点击Launcher图标,窗口实现最小化 功能
  14. left join on +多条件与where区别
  15. [swarthmore cs75] Compiler 3 – Cobra
  16. None.js 第五步 Buffer(缓冲区)
  17. k8s 相关命令
  18. CentOS 7 nginx+tomcat9 session处理方案之session保持
  19. Gym - 100735E Restore
  20. Unity学习系列一简介

热门文章

  1. 贪心+stack Codeforces Beta Round #5 C. Longest Regular Bracket Sequence
  2. magento 获得当前产品页面的产品id
  3. ORA-14074: partition bound must collate higher than that of the last partition
  4. jmeter(十)JMeter 命令行(非GUI)模式
  5. AJPFX简述可变参数概述和使用
  6. FreeMarker-网页静态化
  7. pycharm一些快捷键(不定时添加)
  8. sql server查看某个表上的触发器
  9. jq一些常用的交互效果
  10. vba,设置,excel,wps ,页面设置