【BZOJ4184】shallot 线性基
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4184
此题如果我们不考虑删除元素这一个操作,那么就是一道裸的线性基题。
但是此题会删除元素,且允许离线。
我最初的想法是开一个线段树,然后通过两个线性基的合并去更新答案。
后来发现,一个元素出现的时间段其实是确定的。
我们种一棵线段树,用来维护哪些元素在哪些时间段出现过。
我们在线段树的每个节点上开一个vector,用来存储哪些元素在该节点所表示的时间段上出现过。
最后统计答案一个dfs即可。
第一次交上去我被卡常了,后来换了静态链表才过了。
- #include<bits/stdc++.h>
- #define M 500005
- using namespace std;
- int n,m,num[M]={},q[M]={};
- struct edge{int u,next;}e[M*]={}; int head[M*]={},use=;
- void add(int x,int y){use++;e[use].u=y;e[use].next=head[x];head[x]=use;}
- void updata(int x,int ll,int rr,int l,int r,int k){
- if(l<=ll&&rr<=r){add(x,k);return;}
- int mid=(ll+rr)>>;
- if(l<=mid) updata(x<<,ll,mid,l,r,k);
- if(mid<r) updata(x<<|,mid+,rr,l,r,k);
- }
- struct node{
- int a[];
- node(){memset(a,,sizeof(a));}
- void insert(int x){
- for(int i=;~i;i--)
- if(x&(<<i)){
- if(!a[i]) {a[i]=x; return;}
- else x^=a[i];
- }
- }
- int ans(){
- int ans=;
- for(int i=;~i;i--)
- ans=max(ans,a[i]^ans);
- return ans;
- }
- };
- map<int,int> mp;
- void dfs(int x,int l,int r,node k){
- for(int i=head[x];i;i=e[i].next) k.insert(e[i].u);
- if(l==r){
- printf("%d\n",k.ans());
- return;
- }
- int mid=(l+r)>>;
- dfs(x<<,l,mid,k); dfs(x<<|,mid+,r,k);
- }
- int main(){
- scanf("%d",&m);
- for(int i=;i<=m;i++){
- int x; scanf("%d",&x);
- if(x>) mp[x]=i;
- else{
- int l=mp[-x];
- updata(,,m,l,i-,-x);
- mp.erase(-x);
- }
- }
- map<int,int>::iterator it;
- for(it=mp.begin();it!=mp.end();it++){
- int l=it->second,x=it->first;
- //cout<<l<<' '<<x<<endl;
- updata(,,m,l,m,x);
- }
- node hh;
- dfs(,,m,hh);
- }
【BZOJ4184】shallot 线性基的更多相关文章
- BZOJ 4184 shallot 线性基+分治
Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且让小葱从 ...
- 【BZOJ4184】shallot(线段树分治,线性基)
[BZOJ4184]shallot(线段树分治,线性基) 题面 权限题啊.....好烦.. Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把 ...
- 【BZOJ4184】shallot 线段树+vector+线性基
[BZOJ4184]shallot Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从 ...
- 【BZOJ-4184 】 Shallot 线段树按时间分治 + 线性基
4184: shallot Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 356 Solved: 180[Submit][Status][Discu ...
- BZOJ4184:shallot(线段树分治,线性基)
Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱 ...
- 【bzoj4184】shallot 线段树+高斯消元动态维护线性基
题目描述 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小 ...
- [BZOJ4184]shallot 线段树+线性基
链接 题意:给你每个数字出现的时间和消失的时间,求每个时刻最大异或和 题解 按照时间建立线段树,线段树每个节点开个vector存一下这个时间区间有哪些数,然后递归进入的时候加入线性基,开一个栈记录一下 ...
- BZOJ.4184.shallot(线段树分治 线性基)
BZOJ 裸的线段树分治+线性基,就是跑的巨慢_(:з」∠)_ . 不知道他们都写的什么=-= //41652kb 11920ms #include <map> #include < ...
- bzoj 4184: shallot (线段树维护线性基)
题面 \(solution:\) 这一题绝对算的上是一道经典的例题,它向我们诠释了一种新的线段树维护方式(神犇可以跳过了).像这一类需要加入又需要维护删除的问题,我们曾经是遇到过的像莫对,线段树... ...
随机推荐
- spring-boot @Async 的使用、自定义Executor的配置方法
1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spring 已经实现的异常线程池: 1. SimpleAsyncT ...
- 2018.09.11 bzoj47214721: [Noip2016]蚯蚓(单调队列)
传送门 好题. 目测只会多带一个log2(n+m)" role="presentation" style="position: relative;"& ...
- BZOJ 1003 物流运输 (dp + dijkstra)
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8672 Solved: 3678[Submit][Stat ...
- (KMP)剪花布条 -- hdu -- 2087
http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory ...
- java web中如何获取spring容器中定义的bean----WebApplicationContext的使用
本文简单编写一个servlet来获取spring容器中管理的<bean id="dateBean" class="java.util.Date" sin ...
- window.open()用法说明
1.例子 : window.open("index.jsp","_self"); window.open()格式: window.open( [sURL] [, ...
- Java电话监听器【精品博客】
模拟拨打电话,接听电话,挂断电话,拨打为空号,等等,这些动作用Java接口监听的方式来完成,主要是为了训练使用接口监听回调: /** * 业务场景一: * [萍萍]--->请输入手机号码进行拨打 ...
- PYQT5实现文件目录浏览
def setBrowerPath(self): download_path = QtWidgets.QFileDialog.getExistingDirectory(self, "浏览&q ...
- 设计模式之单件模式(Singleton Pattern)
一.单件模式是什么? 单件模式也被称为单例模式,它的作用说白了就是为了确保“该类的实例只有一个” 单件模式经常被用来管理资源敏感的对象,比如:数据库连接对象.注册表对象.线程池对象等等,这种对象如果同 ...
- asp.net excel导出功能
以下是我在项目开发中所做的关于Excel导出功能,不足之处还望大家指正,相互学习 protected void btn_Export_Click(object sender, EventArgs e) ...