思路:

线段树表示的是时间 每回最多log个段

区间覆盖

一直到叶子 的线性基 xor 一下 就是答案

一开始没有思路 看了这篇题解 豁然开朗

http://www.cnblogs.com/joyouth/p/5333181.html

(还是本省的前辈呢)

//By SiriusRen
#include <set>
#include <vector>
#include <cstdio>
using namespace std;
const int N=500000;
int n,top,all,s[N],a[N];
struct Node{int id,num;Node(int x,int y){id=x,num=y;}Node(){}};
struct Add{int l,r,num;Add(int x,int y,int z){l=x,r=y,num=z;}Add(){}}add[N];
struct Ans{
int num[32];
void psh(int x){
for(int i=30;i>=0;i--)if(x&(1<<i)){
if(!num[i]){num[i]=x;break;}
else x^=num[i];
}
}
}jy;
bool operator<(Node a,Node b){return a.num<b.num;}
set<Node>Set;set<Node>::iterator it;
vector<int>vec[N*4];
void insert(int l,int r,int pos,int L,int R,int num){
if(l>=L&&r<=R){vec[pos].push_back(num);return;}
int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
if(mid<L)insert(mid+1,r,rson,L,R,num);
else if(mid>=R)insert(l,mid,lson,L,R,num);
else insert(l,mid,lson,L,R,num),insert(mid+1,r,rson,L,R,num);
}
void dfs(int l,int r,int pos,Ans now){
for(int i=0;i<vec[pos].size();i++)now.psh(vec[pos][i]);
if(l==r){
int temp=0;
for(int i=30;i>=0;i--)if((temp^now.num[i])>temp)temp^=now.num[i];
printf("%d\n",temp);
return;
}
int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
dfs(l,mid,lson,now),dfs(mid+1,r,rson,now);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]>0)Set.insert(Node(i,a[i]));
else it=Set.lower_bound(Node(0,-a[i])),add[++all]=Add((*it).id,i-1,-a[i]),Set.erase(it);
}
for(it=Set.begin();it!=Set.end();++it)add[++all]=Add((*it).id,n,(*it).num);
for(int i=1;i<=all;i++)insert(1,n,1,add[i].l,add[i].r,add[i].num);
dfs(1,n,1,jy);
}

最新文章

  1. 2016-11-15mysql优化笔记
  2. mysql_multi启动数据库
  3. python_way ,day25 CMDB_models (数据库设计)
  4. centos7 安装教程
  5. 自定义View的基本流程
  6. ASP.NET自定义错误页面
  7. C# winform 登录 单例模式(转)
  8. php安装详解
  9. 路径字符串数据转化为树型层级对象,path to json tree
  10. ●BZOJ 4566 [Haoi2016]找相同字符
  11. XMPP(二)-基于asmack+openfire的安卓客户端(仿QQ)的介绍以及个人心得
  12. springcloud学习资料汇总
  13. Docker Compose 引用环境变量
  14. http连接基础类,负责底层的http通信
  15. Excel坐标自动在AutoCad绘图_4
  16. vmware三种网络模式的工作原理及配置详解
  17. JS require and import
  18. 「CF838B」 Diverging Directions
  19. end to end
  20. Packt发布了2018年技能提升报告

热门文章

  1. Javassist介绍
  2. Programming Recipes
  3. HttpSampler进行模拟webservice接口
  4. apiCloud组件:swiper
  5. Delphi中实现文件拷贝的三种方法
  6. 路飞学城Python-Day151
  7. 对于开启tomcat后无法登陆index.xml的新解决方法
  8. with as递归调用
  9. python面向对象的三大特性之一多态
  10. P1828 香甜的黄油 Sweet Butter (spfa)