• 51Nod


    每个数的SG值之和他有多少个1相关

    打表复杂度:找K个有序的<n的非负数的复杂度为nk/(k!)

    则这题的SG打表复杂度为648/7! 为1e10左右

    void dfs(int cur, int yu, int ans, int next)
    {
        if(yu==0)
        {
            vis[ans]=1;
            return ;
        }
        for(int i=next; i<cur; i++)
            dfs(cur, yu-1, ans^sg[i], i);
    }
    void init()
    {
        sg[0]=0;
        for(int i=1;i<=64; i++)
        {
            memset(vis,0,sizeof(vis));
            dfs(i, 7, 0, 0);
            for(int j=0;;j++)
                if(!vis[j])
                {
                    sg[i]=j;
                    break;
                }
            printf("%d
    ", sg[i]);
        }
    }
    #include <bits/stdc++.h>
    using namespace std;
    typedef unsigned long long uLL;
    
    int sg[] = {0, 1, 2, 4, 8, 16, 32, 64, 128, 255, 256, 512,
                1024, 2048, 3855, 4096, 8192, 13107, 16384, 21845,
                27306, 32768, 38506, 65536, 71576, 92115, 101470,
                131072, 138406, 172589, 240014, 262144, 272069,
                380556, 524288, 536169, 679601, 847140, 1048576,
                1072054, 1258879, 1397519, 2005450, 2097152, 2121415,
                2496892, 2738813, 3993667, 4194304, 4241896, 4617503,
                5821704, 7559873, 8388608, 8439273, 8861366, 11119275,
                11973252, 13280789, 16777216, 16844349, 17102035,
                19984054, 21979742, 23734709
               };
               
    int cal(uLL x)
    {
        int ret=0;
        for(int i=0;i<64;i++)
            if((x>>i)&1) ret++;
        return ret;
    }
    int main()
    {
        int n;
        while(cin>>n)
        {
            int ans=0;
            while(n--)
            {
                uLL t;
                cin>>t;
                ans ^= sg[cal(t)];
            }
            if(ans) puts("B");
            else puts("L");
        }
    }
  • 相关阅读:
    git指令-撤销修改
    git指令-管理修改
    jquery高级
    jquery
    sql的练习题
    git指令-工作区和暂存区
    java-多线程安全-锁
    oracle习题-emp表查询练习
    java-异常进阶-包的使用
    oracle-函数总结
  • 原文地址:https://www.cnblogs.com/Aragaki/p/11644128.html
Copyright © 2020-2023  润新知