题目背景

题目描述

有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。

输入输出格式

输入格式:

输入共一行。

第一行共两个数a, b,表示石子的初始情况。

输出格式:

输出共一行。

第一行为一个数字1、0或-1,如果最后你是胜利者则为1;若失败则为0;若结果无法确定则为-1。

输入输出样例

输入样例#1: 复制

8 4

输出样例#1: 复制

1

说明

[数据范围]

50%的数据,a, b <= 1000

100%的数据,a, b <= 1 000 000 000

威佐夫博弈的裸题

不过不是那么好AC,数据太刁钻了

威佐夫博弈的必败条件

$abs(a,b)*(1+\sqrt{5})/2 = min(a,b)$

#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<cmath>
#define int long long
using namespace std;
const int MAXN=1e6+10,INF=1e9+10;
main()
{int a,b;scanf("%lld%lld",&a,&b);if(a>b) swap(a,b);int temp=abs(a-b);int ans=temp*(1.0+sqrt(5.0))/2.0;if(ans==a) printf("0");else        printf("1");return 0;
}

洛谷P2252 取石子游戏(威佐夫博弈)相关推荐

  1. HDU - 1527 取石子游戏(威佐夫博弈)

    题目链接:点击查看 题目大意:有两堆石子,两个人轮流取,每次可以取一堆中任意多的石子,或者取两堆中数量相同的石子,先将石子取完者获胜,若先手获胜输出1,后手获胜输出0 题目分析:这个题目涉及到了威佐夫 ...

  2. 取两堆石子(威佐夫博弈)

    有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法, 一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者 ...

  3. 洛谷 P4706 取石子 解题报告

    P4706 取石子 题目描述 现在 Yopilla 和 yww 要开始玩游戏! 他们在一条直线上标记了 \(n\) 个点,从左往右依次标号为 \(1, 2, ..., n\) .然后在每个点上放置一些 ...

  4. 洛谷P1288 取数游戏II[博弈论]

    题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流 ...

  5. 洛谷----P1123 取数游戏

    题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少. ...

  6. 【HDU - 2516 】取石子游戏 (Fibonacci博弈)

    题干: 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出"Second win".先取者胜 ...

  7. POJ1067 HDU1527 取石子游戏【博弈】

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. 威佐夫博弈:百练OJ:1067:取石子游戏

    威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...

  9. POJ-1067取石子游戏,威佐夫博弈范例题/NYOJ-161,主要在于这个黄金公式~~

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K              Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取 ...

最新文章

  1. docker学习实践之路[第五站]mysql镜像应用
  2. python中append函数合并列表且列表内数字从高到低_35个高级Python知识点总结
  3. Java设计模式(九):模板方法设计模式
  4. [.NET Core].NET Core R2安装及示例教程
  5. Java命令:jstack — 获取线程dump信息
  6. 基本线程同步(五)使用Lock同步代码块
  7. java drawpolygon_Java如何绘制和填充有孔的Polygon
  8. 再看《JavaScript高级程序设计》第8-9章
  9. matlab如何看线性趋势线,“excle直线拟合“excel 趋势线 是怎么计算出来的
  10. JAVA实现Html转Pdf(wkhtmltopdf)
  11. MultiTracker 多目标跟踪算法
  12. 【暑假集训】F1方程式冠军
  13. 时间戳转换格林威治时间
  14. Cartoon Animator动画制作软件CTA自动保存项目小工具
  15. Excel中文本的拆分与合并
  16. Macbook Pro 外接显示器后,鼠标滑动延迟
  17. edge如何导入html文件收藏夹,Edge浏览器如何导入导出收藏夹(目录位置)
  18. 同步降压电路PCB布局注意事项
  19. 1 计算机主机里面都有些什么东西,电脑主机配件有哪些 电脑主机配件介绍【详解】...
  20. PX4中vtol_att_control 源码解析

热门文章

  1. bash: dotnet: 未找到命令..._Docker 常用命令(.NET Core示例)
  2. tf.keras.layers.Reshape 示例
  3. mysql 连接 查询 连表查询
  4. 14.关于原子性的相关介绍
  5. 四十三、文件存储空间管理
  6. 第一次调研快速入门查找期刊及分级?
  7. 【tensorboard】从tensorboard上看出模型是否存在过拟合
  8. 利用OpenCv读取一张图片并显示
  9. LeetCode 53. Maximum Subarray--动态规划--C++,Python解法
  10. Chrome与chromedriver版本对应