博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1067 取石子游戏
阅读量:6219 次
发布时间:2019-06-21

本文共 1385 字,大约阅读时间需要 4 分钟。

取石子游戏
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 40917   Accepted: 13826

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

题目链接:
分析:

威佐夫博弈(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10).可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而 bk=ak+k.

    那么任给一个局势(a,b),怎样判断它是不是奇异局势呢?我们有如下公式:

    ak =[k(1+√5)/2],bk= ak + k  (k=0,1,2,...,n 方括号表示取整函数)

奇妙的是其中出现了黄金分割数(1+√5)/2 = 1。618...,因此,由ak,bk组成的矩形近似为黄金矩形,由于2/(1+√5)=(√5-1)/2,可以先求出j=[a(√5-1)/2],若a=[j(1+√5)/2],那么a = aj,bj = aj + j,若不等于,那么a = aj+1,bj+1 = aj+1+ j + 1,若都不是,那么就不是奇异局势。然后再按照上述法则进行,一定会遇到奇异局势。

下面给出AC代码:

1 #include
2 #include
3 using namespace std; 4 int main() 5 { 6 int a,b,k,a1,t; 7 while(scanf("%d%d",&a,&b)!=EOF) 8 { 9 if(a>b)10 {11 t=a;12 a=b;13 b=t;14 }15 k=b-a;16 a1=(int)((sqrt(5.0)+1)/2*k); //注意是sqrt(5.0)而不是5 否则会说格式不对17 if(a1==a)18 printf("0\n");19 else20 printf("1\n");21 }22 return 0; 23 }

 

转载地址:http://igoja.baihongyu.com/

你可能感兴趣的文章
java设计模式演示样例
查看>>
C++内存泄露的有效预防方法:谁使用,谁删除 (1.2)
查看>>
使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)
查看>>
转【Python】同时向控制台和文件输出日志logging
查看>>
[SVN(ubuntu)] ubuntu使用svn
查看>>
常见的设计模式:单例模式、工厂模式、观察者模式、装饰模式与适配器模式...
查看>>
微软职位内部推荐-Sr. SW Engineer for Azure Networking
查看>>
Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
查看>>
非常简单的 xml转成数组的方法
查看>>
SQL CLR学习
查看>>
String的高级用法(String.Format)
查看>>
切,切,切,将文本文件按行分割
查看>>
【翻译】Tomcat 6.0 部署与发布
查看>>
hash_map map
查看>>
自动补全多标签输入, 适合新闻标签/商品标签
查看>>
逻辑操作符、位操作符号的忽略点
查看>>
Explicit keyword
查看>>
后台action处理数据传递给前台界面
查看>>
extJS4.2.0 Json数据解析,嵌套及非嵌套(二)
查看>>
ctrl+c,ctrl+d,ctrl+z在linux中意义
查看>>