BZOJ


裸的线段树分治+线性基,就是跑的巨慢_(:з」∠)_ 。
不知道他们都写的什么=-=


//41652kb   11920ms
#include <map>
#include <cstdio>
#include <cctype>
#include <vector>
#include <algorithm>
#define BIT 30
#define gc() getchar()
#define MAXIN 500000
//#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
typedef long long LL;
const int N=5e5+5;std::map<int,int> las;
char IN[MAXIN],*SS=IN,*TT=IN;
struct Base
{int x[BIT+1];void Insert(int v){for(int i=BIT; ~i; --i)if(v>>i&1)if(x[i]) v^=x[i];else {x[i]=v; break;}}void Query(){int res=0;for(int i=BIT; ~i; --i) res=std::max(res,res^x[i]);printf("%d\n",res);}
}base;
struct Segment_Tree
{#define ls rt<<1#define rs rt<<1|1#define lson l,m,ls#define rson m+1,r,rs#define S N<<2std::vector<int> vec[S];#undef Svoid Modify(int l,int r,int rt,int L,int R,int v){if(L<=l && r<=R) {vec[rt].push_back(v); return;}int m=l+r>>1;if(L<=m) Modify(lson,L,R,v);if(m<R) Modify(rson,L,R,v);}void Solve(int l,int r,int rt,Base b){for(std::vector<int>::iterator it=vec[rt].begin(); it!=vec[rt].end(); ++it) b.Insert(*it);if(l==r) {b.Query(); return;}int m=l+r>>1; Solve(lson,b), Solve(rson,b);}
}T;inline int read()
{int now=0;register char c=gc();for(;!isdigit(c);c=gc());for(;isdigit(c);now=now*10+c-48,c=gc());return now;
}int main()
{#define S 1,n,1const int n=read();for(int i=1; i<=n; ++i){int a=read();if(las[a]) T.Modify(S,las[a],i-1,a), las[a]=0;else las[a]=i;}for(std::map<int,int>::iterator it=las.begin(); it!=las.end(); ++it)if((*it).second) T.Modify(S,(*it).second,n,(*it).first);T.Solve(S,base);return 0;
}

转载于:https://www.cnblogs.com/SovietPower/p/10756956.html

BZOJ.4184.shallot(线段树分治 线性基)相关推荐

  1. LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset

    题目:https://loj.ac/problem/2312 https://www.luogu.org/problemnew/show/P3733 原本以为要线段树分治+LCT,查了查发现环上的值直 ...

  2. 【线段树分治 线性基】luoguP3733 [HAOI2017]八纵八横

    不知道为什么bzoj没有HAOI2017 题目描述 Anihc国有n个城市,这n个城市从1~n编号,1号城市为首都.城市间初始时有m条高速公路,每条高速公路都有一个非负整数的经济影响因子,每条高速公路 ...

  3. 【BZOJ4184】shallot 线段树+vector+线性基

    [BZOJ4184]shallot Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从 ...

  4. 2017 ICPC西安区域赛 A - XOR ,线段树合并线性基

    题目链接:A - XOR 题意;给个数组,每次询问一个区间你可以挑任意个数的数字异或和 然后在或上k的最大值 题解:线性基不知道的先看这个,一个线性基可以log的求最大值把对应去区间的线性基求出来然后 ...

  5. bzoj 4025 二分图——线段树分治+LCT

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4025 线段树分治,用 LCT 维护链的长度即可.不过很慢. 正常(更快)的方法应该是线段树分 ...

  6. bzoj 4184 shallot 时间线建线段树+vector+线性基

    题目大意 n个时间点 每个时间点可以插入一个权值或删除一个权值 求每个时间点结束后异或最大值 分析 异或最大值用线性基 但是线性基并不支持删除操作 我们可以对时间线建一棵线段树 离线搞出每个权值出现的 ...

  7. 2017年ICPC西安邀请赛A、XOR(线段树套线性基 + 思维)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目传送门 Problem 给你 nnn 和 nnn 个整数的数组 aaa,以及kkk和qqq,有 q ...

  8. P3292 [SCOI2016]幸运数字(树剖 + 线段树维护线性基)

    P3292 [SCOI2016]幸运数字 思路 如果这题是求x,yx, yx,y之间的距离显然我们可以通过树剖加线段树来写, 但是这里变成了求任意个数的异或最大值.如果给定区间我们显然可以通过线性基来 ...

  9. UVALive - 8512——线段树维护线性基

    [题目描述] UVALive - 8512XOR [题目分析] 这种区间+线性基的问题我们可以考虑用线段树维护,线性基的合并的话就直接暴力合并 找到所在区间的线性基后再查找最大的数,我看网上的博客要说 ...

最新文章

  1. Linux qfile中文文件名,QFile无法打开包含unicode字符的文件名
  2. 香港大学赵恒爽助理教授招收CV/ML等方向全奖博士生、博士后
  3. android 自定义背景园,Android 自定义ProgressBar 进度条颜色和背景颜色
  4. 原来!我在4年前就开始体验雾游戏了!
  5. oracle死锁视频教程,两个Oracle死锁解决实例
  6. 数据结构之查找算法:散列查找
  7. 地产cio揭秘:帆软大商业智能解决方案如何助力地产行业信息化
  8. 解决iview中</Input>标签报错的方法
  9. 【Android架构GPS篇】之定位数据如何从GPS芯片到应用层
  10. excel模板 基金账本_有哪些好用的Excel个人账单模板?
  11. GIMP 2.10.12图片背景透明处理
  12. 计算机视觉前沿技术探索
  13. 如何提升网络安全应急响应与事件处置能力
  14. MVC ViewData和ViewBag
  15. 100G QSFP28 CLR4单模光模块的介绍及对比
  16. iOS15 切换上架App图标的最新方案
  17. 记录人生第一次收获offer的艰辛
  18. confirm 和 alert不显示ip改写
  19. (转)2017年12月宋华教授携IBM中国研究院、猪八戒网、中航信托、33复杂美共同论道智慧供应链金融...
  20. 前端 | 个人主页项目HTML页面解析

热门文章

  1. JS. 东方航空从北京飞往马尔代夫的机票原价为4000元, 4到10月份为旺季,其他月份为淡季, 旺季头等舱打9折,经济舱打7.5折; 淡季头等舱打6折,经济舱打3折。
  2. K线形态识别_高档五阴线
  3. 在android8.1 展锐 关闭系统的selinux seandroid
  4. Webpack Tree Shaking
  5. 高效钉钉小程序开发丨Hello,dingtalk
  6. centos7 redis集群搭建
  7. MySQL主外键以及基本查询
  8. day14-面向对象作业
  9. 医疗疾病感染数据分析——以手术感染为例
  10. 倾向得分匹配(Propensity Score Matching) 通俗解析及在Stata里的运用