zoukankan      html  css  js  c++  java
  • poj 2960 s-nim 博弈 nim博弈变形 sg函数的应用

    #include <cstdio>
    #include<iostream>
    #include <cstring>
    #include<algorithm>
    using namespace std;
    
    int sg[10002],a[10002];
    bool vis[10002];
    
    void getsg(int k)
    {
        sg[0]=0;
        for(int i=1;i<=10000;i++)
        {
            memset(vis,false,sizeof(vis));
            for(int j=0;a[j]<=i&&j<k;j++)
                vis[sg[i-a[j]]]=true;
            for(int j=0;j<=10000;j++)
                if(vis[j]==false)
                    {
                        sg[i]=j;
                        break;
                    }
        }
    }
    
    int main()
    {
        int k,m,n;
        while(scanf("%d",&k),k)
        {
            for(int i=0;i<k;i++)
                scanf("%d",&a[i]);
            sort(a,a+k);
            getsg(k);
            scanf("%d",&m);
            while(m--)
            {
                int ans=0;
                scanf("%d",&n);
                while(n--)
                {
                   int x;
                   scanf("%d",&x);
                   ans^=sg[x];
                }
                if(ans)
                    printf("W");
                else printf("L");
            }
            printf("
    ");
        }
    
        return 0;
    }
  • 相关阅读:
    poj3481
    查找湖南问题
    tyvj1033
    tyvj1088
    oil倒油
    加分二叉树
    模拟题2
    模拟题3
    Free pascal中的random函数
    Spring MVC入门配置
  • 原文地址:https://www.cnblogs.com/assult/p/3580710.html
Copyright © 2011-2022 走看看