poj-1067取石子问题

原创 2012年03月28日 22:34:26
                                                                                 A -取石子游戏
Crawling in process...Crawling failedTime Limit:1000MS    Memory Limit:10000KB   64bit IO Format:%I64d & %I64u

Description

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

Input

输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。

Output

输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。

Sample Input

2 1
8 4
4 7

Sample Output

0
1
0
看着题目,字面意思是很清楚,但要深究那就不是那么容易了。解这道题还是用了数论的一个规律:威佐夫博奕,先求出黄金点,再根据规律写,很快答案就出来了。想弄的更透侧
的可以到网上问度娘去。反正我对于那个规律是不太懂。
#include <iostream>
#include <cmath>
#include<cstdio>
using namespace std;
int main()
{
	double alpha = (1.0 + sqrt(5.0)) / 2.0;
	double beta  = (3.0 + sqrt(5.0)) / 2.0;
	int a,b, n, temp1, temp2,t;
	while(scanf("%d %d",&a,&b)!=EOF)	
	{	
		if(a < b)	
	        swap(a, b);	
		n = ceil(a / beta);	
		temp1 = alpha * n;		
		temp2 = beta  * n;	
		if(b == temp1 && a == temp2)
		    	t=0;	
		else 
			t=1;
		if(t==1)
			printf("1\n");
		else
			printf("0\n");
	}
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Poj 1067 取石子游戏(NIM,威佐夫博奕)

一、Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子...

POJ 1067 取石子游戏(威佐夫博奕)

题目地址:POJ 1067 威佐夫博弈模型。判断奇异局势。 根据面对非奇异局势,先拿者必胜;反之,则后拿者取胜。 判断奇异局势只用一个公式来判断就行。 假设b>a,若a==(int)(b-a)*(1...

POJ-1067 取石子游戏(威佐夫博弈)

直接是:威佐夫博弈。 这个过于繁琐,只能运用现成的结论。 设奇异局势(必败局势)为(a[i],b[i]),则有a[0]=b[0]=0;a[k]=前面未出现的最小自然数,b[k]=a[k]+k 具...

poj1067取石子游戏

题目大意: 有两堆石子,每堆石子有

POJ-1067 取石子游戏

POJ-1067 取石子游戏/*黄金分割比例判断是不是非奇异局势,面对奇异局势必败 两个人如果都采用正确操作,那么面对非奇异局势,先拿者必胜 反之,则后拿者取胜。 */ //公式 ak =[k(1+...

【POJ1067】取石子游戏 ||【NYOJ161】(威佐夫博奕(Wythoff Game))

威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。这种情况下是颇为复杂的。我们用(ak,bk)(...

POJ 1067 取石子游戏

取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 25862   Accepte...

取石子游戏(POJ1067)的原理

这两天在做POJ的题目,看到一题POJ1067,题目因为是中文的,所以并不是很难理解,但是解了一会没有什么思路。于是到网上找了方法,有一篇博客讲的十分详细,非常感谢该博主的贡献。 原来是威佐夫博弈,...

POJ 1067 取石子游戏 (巴什博弈+威佐夫博弈)

本来以为是很简单的题目,以为是下面介绍的巴什博弈(Bash Game)题型,这种题目的解答方式就是保证每次取完是N整数倍范围即可,但是题目原来不是巴什博弈,想参照巴什博弈的思想,找出每个时刻A取完能够...

POJ - 1067 - 取石子游戏 (威佐夫博奕)

题目传送:取石子游戏 威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)