zoukankan      html  css  js  c++  java
  • H.Playing games

    fwt

    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=1<<19;
    const int mod=1000000007;
    const int inv2=(mod+1)/2;
    
    void fwt(int *a,int n)
    {
        for(int i=1;i<n;i<<=1)
            for(int p=i<<1,j=0;j<n;j+=p)
                for(int k=j;k<j+i;k++)
                {
                    int x=a[k],y=a[i+k];
                    a[k]=(x+y)%mod;
                    a[i+k]=(x-y+mod)%mod;
                }
    }
    void ifwt(int *a,int n)
    {
        for(int i=1;i<n;i<<=1)
            for(int p=i<<1,j=0;j<n;j+=p)
                for(int k=j;k<j+i;k++)
                {
                    int x=a[k],y=a[i+k];
                    a[k]=1LL*(x+y)*inv2%mod;
                    a[i+k]=1LL*(x-y+mod)*inv2%mod;
                }
    }
    int a[22][N],n;
    int main()
    {
        scanf("%d",&n);
        int s=0;
        for(int i=1;i<=n;++i)
        {
            int x;
            scanf("%d",&x);
            a[0][x]=1;
            s^=x;
        }
        a[0][0]=1;
        fwt(a[0],N);
        for(int i=1;i<22;++i)
            for(int j=0;j<N;++j)
                a[i][j]=1LL*a[i-1][j]*a[0][j]%mod;
        if(s==0)printf("%d
    ",n);
        else
        {
            for(int i=0;i<22;++i)
            {
                ifwt(a[i],N);
                if(a[i][s])
                {
                    printf("%d
    ",n-i-1);
                    break;
                }
            }
        }
        return 0;
    }
    /********************
    
    ********************/
    
    
  • 相关阅读:
    AnyVal与AnyRef
    安装Zookeeper
    Kafka
    ZooKeeper总结
    Idea中JDK为1.8,还提示Diamond types are not supported at this language level
    Hive 和 Mysql
    Spark练习代码
    响应状态码
    http简介
    csrf
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/9485449.html
Copyright © 2011-2022 走看看