hdu1536

原创 2013年12月06日 10:47:41
#include <iostream>
#include <string.h>
#include <cstdio>
#include <algorithm>

using namespace std;

#define MAXN 10000 + 10

const int INF = (~0U >> 1);

int temp[MAXN], sg[MAXN];

void getsg()
{
    sg[0] = 0;

    for (int i = 1; i <= 10000; i++)
    {
        bool vis[101];
        memset(vis, false ,sizeof(vis));

        for (int j = 0; temp[j] <= i; j++)
        {
            vis[sg[i - temp[j]]] = true;
        }

        for (int j = 0; j < 101; j++)
        {
            if (vis[j] == false)
            {
                sg[i] = j;
                break;
            }
        }
    }
}

void input()
{
    int s, n, m;

    while (cin >> s, s)
    {
        for (int i = 0; i < s; i++)
        {
            scanf("%d", &temp[i]);
        }

        sort(temp, temp + s);

        temp[s] = INF;

        getsg();

        cin >> m;

        while (m--)
        {
            cin >> n;

            int sum = 0, x;

            for (int i = 0; i < n; i++)
            {
                cin >> x;

                sum ^= sg[x];
            }

            cout << (sum ? 'W' : 'L');
        }

        cout << endl;
    }
}

int main()
{
    input();
    return 0;
}

【HDU1536】S-Nim (博弈,SG函数)

#include #include using namespace std; #define N 100+10 int knum,mnum,lnum; int ans[N...
  • hzyhouzhiyuan
  • hzyhouzhiyuan
  • 2011年04月11日 15:17
  • 1363

HDU1536 S-nim 尼姆博弈简单题

S-Nim Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su...
  • ndrg55
  • ndrg55
  • 2016年08月20日 09:51
  • 111

hdu 1536、hdu 1944 S-Nim(博弈SG函数)

题意:多组测试数据 ,输入 k个集合S的元素,m种情况,m种(L堆,每堆hi个)。             若存在移动某堆能到达一个必败点,则该点为必胜点,输出W             必败点指...
  • LiWen_7
  • LiWen_7
  • 2012年09月04日 18:19
  • 3306

hdu1536 S-Nim

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submissio...
  • Kirito_Acmer
  • Kirito_Acmer
  • 2016年01月24日 11:49
  • 224

hdu1536 1848

题意:两个题的题意基本上是一样的,英文不好就不说了啊。。。 思路: 其实这两道题就是求sg值得问题把每个堆的sg值求出来然后去异或就能知道是L还是W了 这两道题我用了两种方法去求sg值一个是普通...
  • a49681109
  • a49681109
  • 2015年04月16日 20:06
  • 387

hdu1536 博弈模板

题意就是给出一个数组s。为每次可以取石子的数目。然后给你n堆石子每堆si。求解先手能不能赢!标准的sg函数用法题目。 #include #include #include using na...
  • liuyanfeier
  • liuyanfeier
  • 2015年12月27日 15:43
  • 169

S-Nim(hdu1536+SG函数)

S-Nim Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su...
  • u010579068
  • u010579068
  • 2015年08月04日 21:41
  • 1441

HDU1536 SG函数

分析:直接求出sg函数以后xor起来,最终答案是0就L否则W 注意vis不能全局定义。。#include #include #include #include #define fo(i,a,b) f...
  • qq_35866453
  • qq_35866453
  • 2017年04月06日 10:44
  • 74

hdu1536博弈sg

当三个博弈都没法使用时用sg函数,比如拿特定的石子,就是下面这到题 sg那一段就是相当于转化P-N,注意这里第一个点不是0点为p点,而是能拿最小的那个个数减1,比如最少拿两个,那么就剩一颗石子时就已...
  • qq_31607947
  • qq_31607947
  • 2017年06月05日 23:15
  • 53

hdu1536 S-Nim(博弈)

SG函数的应用 加上^. #include #include #include #define N 10003 using namespace std; int sg[N]; int s[103]...
  • nealgavin
  • nealgavin
  • 2012年04月04日 14:53
  • 586
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu1536
举报原因:
原因补充:

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