带一个圆环的尼姆博弈

原创 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;
}


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

相关文章推荐

Matrix Game(尼姆博弈)

简单的尼姆博弈

A - Matrix Game 常规尼姆博弈

A - Matrix Game Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit St...

Rabbit and Grass(杭电1849)(尼姆博弈)

Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)...

尼姆博弈 (附:HDU1850)

尼姆博弈: 有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况与二进制有着很大的关系, 我们用(a,b,c)来表示某种局势, 那么(...

John(HDU 1907) —— 尼姆博弈

John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub...

HDU-1850-Being a Good Boy in Spring Festival(尼姆博弈)

Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32...

hdu 5708 Alice and Bob(尼姆博弈)

规律相对入门级的题没有那么好找,但也算不上什么难题。

ACM-尼姆博弈之John——hdu1907

ACM 尼姆博弈 John hdu1907

尼姆博弈 Match Games

Description Here is a simple game. In this game, there are several piles of matches and two playe...
  • winycg
  • winycg
  • 2016年03月27日 22:20
  • 133

尼姆博弈 HDU2176

有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:带一个圆环的尼姆博弈
举报原因:
原因补充:

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