zoukankan      html  css  js  c++  java
  • HDU1536 S-Nim(SG函数)

    题意:

    给一个集合f,表示可以取的个数

    N堆石子,每次取其中一堆的f[]个,

    谁先取完所有的就赢了

    输出

    思路:

    sg最后异或

    /* ***********************************************
    Author        :devil
    Created Time  :2016/5/29 12:22:32
    ************************************************ */
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <assert.h>
    #include <map>
    #include <string>
    #include <cmath>
    #include <stdlib.h>
    using namespace std;
    const int N=10010;
    int sg[N],f[110];
    bool vis[N];
    void getsg(int n)
    {
        memset(sg,0,sizeof(sg));
        for(int i=1; i<N; i++)
        {
            memset(vis,0,sizeof(vis));
            for(int j=0; f[j]<=i&&j<n; j++)
                vis[sg[i-f[j]]]=1;
            for(int j=0;; j++)
                if(!vis[j])
                {
                    sg[i]=j;
                    break;
                }
        }
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        int n,t,x,m;
        while(~scanf("%d",&n)&&n)
        {
            for(int i=0; i<n; i++)
                scanf("%d",&f[i]);
            sort(f,f+n);
            getsg(n);
            scanf("%d",&t);
            while(t--)
            {
                scanf("%d",&m);
                int ans=0;
                while(m--)
                {
                    scanf("%d",&x);
                    ans^=sg[x];
                }
                if(ans) printf("W");
                else printf("L");
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    npm 一些常用的命令
    Angular Encapsulation
    隐藏scrollbar
    Vue生命周期详解(1)- 单个组件
    如何自己制作iconfont
    day07-2018-10--25 深浅拷贝
    day06-2018-10--24 小数据池和编码
    day05-2018-10--23 字典
    day04-2018-10--22python基础
    day03-2018-10-19-python基础
  • 原文地址:https://www.cnblogs.com/d-e-v-i-l/p/5539197.html
Copyright © 2011-2022 走看看