• CodeForces Round #173 (282E)


         练习赛的时候这道题死活超时....想到了高位确定后..低位不能对高位产生影响..并且高位要尽可能的为1..就是想不出比较好的方法了实现...

         围观大神博客..http://www.cnblogs.com/zhj5chengfeng/archive/2013/05/14/3077621.html

         思路很清晰了..没什么补充的..自己的思维还是不够啊...大神几句话点拨...豁然开朗...


    Program:

    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<cmath>
    #include<queue>
    #include<stdio.h>
    #include<stack>
    #define oo 1000000007
    #define ll long long
    #define pi acos(-1.0)
    using namespace std;
    struct node
    {
           int son[2]; 
           ll w;
    }p[10000005];
    ll a[100005],totol,ans,_2jie[45];
    int num;
    void InsertToTrie(ll x)
    {
           int h=0,i,t;
           for (i=40;i>=0;i--)
           {
                 if (x & _2jie[i]) t=1;
                    else t=0;
                 if (!p[h].son[t]) p[h].son[t]=++num;
                 h=p[h].son[t];
           }       
           p[h].w=x;
           return;
    }
    ll SerchMax(ll x)
    {
           int h,i,t;
           h=0;
           for (i=40;i>=0;i--)
           {
                 if (x & _2jie[i]) t=1;
                    else t=0;
                 if (p[h].son[1-t]) h=p[h].son[1-t];
                    else h=p[h].son[t]; 
           }
           return p[h].w;
    } 
    int main()
    {
           int i,n;
           ll prefix,postfix; 
           _2jie[0]=1;
           for (i=1;i<=40;i++) _2jie[i]=_2jie[i-1]*2;
           while (~scanf("%d",&n))
           {
                 postfix=0;
                 for (i=1;i<=n;i++) scanf("%I64d",&a[i]),postfix^=a[i]; 
                 memset(p,0,sizeof(p));
                 ans=postfix;
                 num=0;
                 prefix=0;
                 InsertToTrie(0);
                 for (i=1;i<=n;i++)
                 {
                        prefix^=a[i];
                        InsertToTrie(prefix);
                        postfix^=a[i]; 
                        ans=max(ans,SerchMax(postfix)^postfix);
                 }
                 printf("%I64d
    ",ans);    
           }
           return 0;
    }
    


  • 相关阅读:
    tp 30秒超时
    zend studio git 提示错误
    php连接数据库
    php点击排序
    表情符号解析
    js Object.assign 方法
    Web界面简繁体转换
    H5骨架屏实战
    JavaScript heap out of memory问题
    Vue bus插件封装
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3199163.html
Copyright © 2020-2023  润新知