带一个圆环的尼姆博弈

原创 2016年08月28日 15:06:09

题目:hdu3980

题意:有一串含有n个珠子的链子。每个人每次只能给相邻的m个珠子涂色。谁先不能涂了谁就输了。

解答:重点:第一个人涂完之后它就变成了一条直线。然后每次在直线中选m个连续的涂完剩下两条抑或一下就行。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int MAXN = 1010;
int sg[MAXN];
int n,m;
int getsg(int a)
{
    if(sg[a] != -1)
        return sg[a];
    if(a < m)
        return 0;
    int vis[MAXN];
    memset(vis,0,sizeof(vis));
    for(int i = 0;i <= a-m;i++)
    {
        vis[getsg(i) ^ getsg(a-m-i)] = 1;
    }
    for(int i = 0;;i++)
    {
        if(!vis[i])
        {
            sg[a] = i;
            return i;
        }
    }
}
int main()
{
    int T;
    scanf("%d",&T);
    for(int i = 1;i <= T;i++)
    {
        cin >> n >> m;
        cout << "Case #" << i << ": ";
        memset(sg,-1,sizeof(sg));
        if(n < m || getsg(n - m) != 0)
            puts("abcdxyzk");
        else
            puts("aekdycoin");
    }
    return 0;
}


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

编程之美1.12 尼姆博弈拓展的分析与论证

在书籍《编程之美》中,总共讲述了三个关于取石子博弈的问题。书中对这三个博弈问题的本身都有详细的解答。然而,看懂这些解答本身并不是一件难事。我们学知识呢,应该学会举一反三,这样才算是真正掌握了知识,同时...
  • MathThinker
  • MathThinker
  • 2015年08月18日 19:41
  • 1117

阶梯博弈算法详解(尼姆博弈进阶)

1.什么是阶梯博弈? 阶梯的序号如图所示,地面表示第0号阶梯。每次都可以将一个阶梯上的石子向其左侧移动任意个石子,没有可以移动的空间时(及所有石子都位于地面时)输。 2.阶梯博弈的算法 阶梯博弈...
  • qq_30241305
  • qq_30241305
  • 2016年07月19日 16:03
  • 1310

博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

一.  巴什博奕(Bash Game)   A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30。这应该是最古老的关于巴什博奕的游戏了吧。 其实如果知道原理,这游戏一点运气成分都没有,只和先...
  • AC_Gibson
  • AC_Gibson
  • 2014年11月30日 18:37
  • 4916

尼姆博弈之Matchs game

Description Here is a simple game. In this game, there are several piles of matches and two players....
  • EmilSinclair4391
  • EmilSinclair4391
  • 2016年04月21日 12:26
  • 276

取(m堆)石子游戏(尼姆博弈)

取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota...
  • baidu_23955875
  • baidu_23955875
  • 2015年01月01日 20:34
  • 314

John+hdu+尼姆博弈

John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub...
  • u012870383
  • u012870383
  • 2014年09月24日 23:05
  • 584

hdu 1850 尼姆博弈

Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/3...
  • qaz135135135
  • qaz135135135
  • 2016年07月29日 17:00
  • 90

尼姆博弈扩展形式(一): 限定每次取物的上限。NYOJ-135,难度5~~~

取石子(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 http://acm.nyist.net/JudgeOnline/problem.php...
  • NYIST_TC_LYQ
  • NYIST_TC_LYQ
  • 2016年04月19日 19:45
  • 595

hdu 1850 Being a Good Boy in Spring Festival 博弈论之尼姆博弈,,都被自己蠢哭了!

Problem Description 一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天...
  • Lionel_D
  • Lionel_D
  • 2015年02月25日 21:49
  • 712

杭电 1850(尼姆博弈)

Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/3...
  • Ice_Alone
  • Ice_Alone
  • 2014年08月15日 11:01
  • 782
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:带一个圆环的尼姆博弈
举报原因:
原因补充:

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