思路:

线段树表示的是时间 每回最多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);
}

BZOJ 4184 线段树+高斯消元的更多相关文章

  1. 【bzoj4184】shallot 线段树+高斯消元动态维护线性基

    题目描述 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小 ...

  2. 【bzoj2115】[Wc2011] Xor DFS树+高斯消元求线性基

    题目描述 输入 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图 ...

  3. BZOJ 2466: [中山市选2009]树( 高斯消元 )

    高斯消元解异或方程组...然后对自由元进行暴搜.树形dp应该也是可以的... ------------------------------------------------------------- ...

  4. 【BZOJ】2466: [中山市选2009]树 高斯消元解异或方程组

    [题意]给定一棵树的灯,按一次x改变与x距离<=1的点的状态,求全0到全1的最少次数.n<=100. [算法]高斯消元解异或方程组 [题解]设f[i]=0/1表示是否按第i个点的按钮,根据 ...

  5. BZOJ 2466 中山市选2009 树 高斯消元+暴力

    题目大意:树上拉灯游戏 高斯消元解异或方程组,对于全部的自由元暴力2^n枚举状态,代入计算 这做法真是一点也不优雅... #include <cstdio> #include <cs ...

  6. BZOJ 3270 && BZOJ 1778 (期望DP && 高斯消元)

    BZOJ 3270 :设置状态为Id(x,y)表示一人在x,一人在y这个状态的概率. 所以总共有n^2种状态. p[i]表示留在该点的概率,Out[i]=(1-p[i])/Degree[i]表示离开该 ...

  7. [bzoj 2844]线性基+高斯消元

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2844 又用到线性基+高斯消元的套路题了,因为经过高斯消元以后的线性基有非常好的序关系,所以 ...

  8. BZOJ 3105 线性基 高斯消元

    思路: 按照从大到小排个序 维护两个数组 一个是消元后的 另一个是 按照消元的位置排的 不断 维护从大到小 (呃具体见代码) //By SiriusRen #include <cstdio> ...

  9. BZOJ 2115: [Wc2011] Xor [高斯消元XOR 线性基 图]

    啦啦啦 题意: N 个点M条边的边带权的无向图,求1到n一条XOR和最大的路径 感觉把学的东西都用上了.... 1到n的所有路径可以由一条1到n的简单路径异或上任意个简单环得到 证明: 如果环与路径有 ...

随机推荐

  1. RocketMQ之消息中间件需要解决的问题

    消息中间件需要解决哪些问题 1.Publish/Subscribe(发布订阅) 发布订阅是消息中间件最基本的功能 2.Message Priority(消息优先级) 在消息队列中,每条消息都有不同的优 ...

  2. 使用光盘作为yum源安装ifconfig等网络命令

    # mkdir -p /mnt/cdrom# 如果是光驱:mount -t iso9660 /dev/cdrom /mnt/cdrom/# 如果是ISO:mount -o loop /usr/loca ...

  3. MongoDB 学习笔记(二):shell中执行增删查改

    一.查 1.查询集合中所有文档:db.集合名.find(). 2.查询集合中第一个文档:db.集合名.findOne(). 3.指定查询条件:第一个参数就是指定查询条件 查询全部文档:db.集合名.f ...

  4. NGUI报错处理

     Unity5.4.1与NGUI出现的问题Ignoring menu item NGUI because it is in no submenu!   Ignoring menu item NGUI ...

  5. C++进阶 STL(3) 第三天 函数对象适配器、常用遍历算法、常用排序算法、常用算数生成算法、常用集合算法、 distance_逆序遍历_修改容器元素

    01昨天课程回顾 02函数对象适配器 函数适配器是用来让一个函数对象表现出另外一种类型的函数对象的特征.因为,许多情况下,我们所持有的函数对象或普通函数的参数个数或是返回值类型并不是我们想要的,这时候 ...

  6. 漫谈 Google 的 Native Client(NaCl) 技术(二)---- 技术篇(兼谈 LLVM)

    转自:http://hzx5.blog.163.com/blog/static/40744388201172531637729/ 漫谈 Google 的 Native Client(NaCl) 技术( ...

  7. UVA1225 - Digit Counting(紫书习题3.3)

    Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequen ...

  8. 「Poetize4」创世纪

    在tyvj上怀疑爆栈了.....或许一定是我写挂了.以后调吧... UPD:bzoj上过了... 题解:https://blog.csdn.net/popoqqq/article/details/39 ...

  9. CSS中选择器优先级的权重计算

    CSS中选择器优先级的权重计算 先看一段代码,如下: a{ color: red; } #box a{ color: green; } [class="box"] a{ color ...

  10. Django入门--模板路径配置及渲染

    模板就是前端的页面,Django把html源码写到模板文件中,然后通过特定方法渲染后交给客户端. 模板路径设置方法有两种,分别是在项目目录下设置以及在应用目录下设置. 模板查找顺序:优先在DIRS设置 ...