• 4.J


    题目连接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/J

    题目大意 游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。用到了威佐夫博奕。(a[k],b[k]) 满足a[k]=b[k]+k 称为奇异局势。 那么我们要如何判断一个局势是否为奇异局势?公式如下:

    a[k] = [k(1+√5)/2](a[k]这个方括号为下标运算符,[k(1+√5)/2]这个方括号为取整运算符),b[k] = a[k] + k 。
    博弈问题的博客连接  http://blog.csdn.net/luomingjun12315/article/details/45479073
    //模板
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int main()
    {
    
        int a,b;
        while(scanf("%d%d",&a,&b)!=EOF)
        {
            int k=abs(a-b);
            a=a<b?a:b;
            int ak;
            ak=floor(k*(1.0+sqrt(5.0))/2);//公式算出啊a[k]与给出的a[k]比较
            printf("%d
    ",ak!=a);//如果不相等,就不是奇异局势
        }
    
        return 0;
    }
  • 相关阅读:
    过度和动画
    自定义指令
    使用ref操作DOM和过滤器的使用
    计算属性与侦听器
    MVVM设计思想
    vue template
    Vue初探
    npm 6.14 + Babel 7 使用
    5行代码起一个服务
    vue打包后引入js和css用相对路径引入
  • 原文地址:https://www.cnblogs.com/Twsc/p/5738257.html
Copyright © 2020-2023  润新知