ACM 之 J - 组合

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

理解

这是威佐夫博弈(Wythoff Game)

代码部分

#include <cstdio>
#include <cmath>
using namespace std;
int a,b;
int main()
{
    while (scanf("%d%d",&a,&b)!=EOF)
    {
        if (a>b)
        {
            a=a+b;
            b=a-b;
            a=a-b;
        }
        printf("%d\n",(int)((sqrt(5.0)+1)*(b-a)/2)==a?0:1);
    }
    return 0;
}

意见反馈 || 任何建议

联系我(新浪)
邮箱:qianlizhihao@gmail.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,156评论 19 139
  • (一)巴什博弈只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。显然,...
    Gitfan阅读 980评论 0 0
  • 曾经沧海难为水 周亮跟夏楠提出了分手,理由是夏楠不爱他。他说,夏楠你虽然在我身边,可我感受不到你的心,你每次的笑都...
    咩的一声羊叫阅读 704评论 1 4
  • 初学,老师曾讲过,婴命不算,结婚不算,生病不算。此不算为算命,新生的婴儿命不算,大喜之日命也不算,大病之初也不算。...
    艳阳下行马阅读 919评论 0 0
  • 清 王翚 山窗读书图 轴 纸本淡设色 160x42cm北京故宫博物院藏 故宫博物院介绍原文 全图以高远法构图,白云...
    艺术书画收藏阅读 1,003评论 0 0