博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces Round #173 (282E) - Sausage Maximization 字典树
阅读量:6431 次
发布时间:2019-06-23

本文共 1174 字,大约阅读时间需要 3 分钟。

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

     围观大神博客..

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

Program:

 

#include
#include
#include
#include
#include
#include
#include
#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\n",ans); } return 0;}

 

 

转载地址:http://pltga.baihongyu.com/

你可能感兴趣的文章
Centos6.5下安装protobuf及简单使用
查看>>
[SharePoint] SharePoint 错误集 3
查看>>
高压光耦
查看>>
[转]DPM2012系列之六:在Win7上安装DPM远程管理控制台
查看>>
postgres函数
查看>>
Microsoft AJAX Library Cheat Sheet(5): Number和Error类型的扩展
查看>>
AfxGetMainWnd函数
查看>>
WebView增加一个水平Progress,位置、长相随意
查看>>
easyui messager alert 三秒后自动关闭提示
查看>>
core data 基础操作
查看>>
ORM框架Hibernate (四) 一对一单向、双向关联映射
查看>>
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
查看>>
offsetLeft, offsetTop以及postion().left , postion().top有神马区别
查看>>
数据库中触发器before与after认识
查看>>
手动露天广场和立方体
查看>>
随机选择
查看>>
【Java并发编程三】闭锁
查看>>
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
查看>>
让你的Git水平更上一层楼的10个小贴士
查看>>
c++ string 之 find_first_not_of 源码
查看>>