HDOJ 取石子游戏 1527【威佐夫博奕】
来源:互联网 发布:linux nslookup mx 编辑:程序博客网 时间:2024/06/05 20:39
取石子游戏
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4449 Accepted Submission(s): 2308
Problem Description
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
Input
输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。
Output
输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。
Sample Input
2 18 44 7
Sample Output
010
Source
NOI
Recommend
LL | We have carefully selected several similar problems for you: 1404 1517 1524 1729 1525
Wythoff’s Game (威佐夫博弈)
这篇文章对威佐夫博奕 讲的不错:点击打开链接
具体判断方法就是判断是否是一个 a,b是否符合Beatty数列的性质:Beatty数列。
判断方法就是 判断a,b的差值是否为[x] (x取整)的整数倍
x等价于第一个文章中beatty数列中的a。。
#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>using namespace std;int main(){ int a,b; double x=(sqrt(5.0)+1.0)/2.0; while(scanf("%d%d",&a,&b)!=EOF) { if(a>b){ a^=b; b^=a; a^=b; } int k=b-a; if(a==(int)(k*x))printf("0\n"); else printf("1\n"); } return 0;}
0 0
- hdoj 1527 取石子游戏(威佐夫博奕)
- HDOJ 取石子游戏 1527【威佐夫博奕】
- hdoj 1527 取石子游戏 【威佐夫博奕】
- HDOJ-1527 取石子游戏(威佐夫博奕)
- HDOJ 1527 取石子游戏(威佐夫博奕)
- HDoj-1527-取石子游戏
- hdoj 1527取石子游戏
- HDOJ 题目1527 取石子游戏(威佐夫博奕)
- HDOJ 2516 取石子游戏
- HDOJ 2516-取石子游戏
- hdoj 2516 取石子游戏
- HDOJ 2516 取石子游戏(一堆)
- HDOJ 取石子游戏(威佐夫博弈)
- HDOJ 2516 取石子游戏 Fibonacci Nim
- hdoj--2516--取石子游戏(博弈)
- HDOJ 2176 取(m堆)石子游戏
- HDOJ-2177 取(2堆)石子游戏
- HDU 1527 取石子游戏 威佐夫博奕
- OSGi控制台在Eclipse插件开发中的妙用
- 多态
- Leetcode34 Search for a Range
- 使用第三方 签章 时碰到的问题
- python时间函数和常用格式化
- HDOJ 取石子游戏 1527【威佐夫博奕】
- 第三周第二天( 【Class类与Java反射 】 【Method类的常用方法 】 【注解】)
- Failed to install *.apk on device 'emulator-5554': timeout
- 创建第一个MVC项目
- MySQL Connector/C++ 简单例子
- KVO
- OmniGraffle (一)从工具栏开始
- 将GPIUmage集成到项目中
- Integray Image(积分图)