题意:给定一个数列a,给定两种操作:

1.询问[l,r]区间内最大的xor和

2.n++,a[n]赋值为x

要求强制在线

n,m<=5e5,a[i]<2^30

思路:同CF1100F

固定右端点,维护每一维上使生成空间变大的最大的左端点

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<ll,ll> Pll;
typedef vector<int> VI;
typedef vector<PII> VII;
typedef pair<ll,int>P;
#define N 1100000
#define M 151000
#define fi first
#define se second
#define MP make_pair
#define pi acos(-1)
#define mem(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define per(i,a,b) for(int i=(int)a;i>=(int)b;i--)
#define lowbit(x) x&(-x)
#define Rand (rand()*(1<<16)+rand())
#define id(x) ((x)<=B?(x):m-n/(x)+1)
#define ls p<<1
#define rs p<<1|1 const ll MOD=1e9+,inv2=(MOD+)/;
double eps=1e-;
ll INF=1e18;
ll inf=5e13;
int dx[]={-,,,};
int dy[]={,,-,}; int f[N][],g[N][],a[N]; int read()
{
int v=,f=;
char c=getchar();
while(c<||<c) {if(c=='-') f=-; c=getchar();}
while(<=c&&c<=) v=(v<<)+v+v+c-,c=getchar();
return v*f;
} void add(int i,int x)
{
int k=i;
per(j,,) f[i][j]=f[i-][j],g[i][j]=g[i-][j];
per(j,,)
if(x>>j)
{
if(!f[i][j])
{
f[i][j]=x;
g[i][j]=k;
break;
}
else
{
if(k>g[i][j])
{
swap(k,g[i][j]);
swap(x,f[i][j]);
}
x^=f[i][j];
}
}
} int main()
{
//freopen("1.in","r",stdin);
//freopen("1.out","w",stdout);
int cas=read();
while(cas--)
{
int n=read(),m=read();
rep(i,,n)
rep(j,,) f[i][j]=g[i][j]=;
int lastans=;
rep(i,,n)
{
a[i]=read();
add(i,a[i]);
} while(m--)
{
int op=read();
if(op)
{
a[++n]=read()^lastans;
add(n,a[n]);
}
else
{
int l=read(),r=read();
l=(l^lastans)%n+,r=(r^lastans)%n+;
if(l>r) swap(l,r);
lastans=;
per(i,,)
if((lastans^f[r][i])>lastans&&g[r][i]>=l) lastans^=f[r][i];
printf("%d\n",lastans);
}
} } return ;
}

最新文章

  1. windows下安装composer抛出Composer\Downloader\TransportException异常解决办法
  2. 无法加载协定为xx的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
  3. c#后台替换html标签的方法
  4. [译]使用Continuous painting mode来分析页面的绘制状态
  5. Solaris 命令 小结
  6. 【M23】考虑使用其他程序库
  7. 收录一个简单的css类库
  8. shell复习笔记----查找与替换
  9. 移动端网站或APP点击后出现闪动或灰色背景
  10. python时间函数
  11. css3 移动端 开关效果
  12. django配合mongo使用
  13. GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战
  14. (转)tomcat架构&amp;session共享
  15. C#深入多线程
  16. 使用tor网络
  17. day28(ajax之js原生代码实现)
  18. 01-go语言开始-HelloWorld
  19. cd命令详解
  20. CentOS7下Tomcat启动慢的原因及解决方案

热门文章

  1. Bootstrap FileInput
  2. JS-闭包(Closures)和let声明块级作用域变量
  3. day11—前端学习之我不想看书
  4. Bootstrap 学习笔记12 轮播插件
  5. 编程语言 - 脚本编程 - JavaScript/Jquery/Ajax/XML/JSON/ActionScript3
  6. (转载)Java 8 认识 HashMap
  7. Vue CLI UI:Vue开发者必不可少的工具
  8. Quartz-第二篇 使用quartz框架定时推送邮件
  9. python阳历转农历
  10. Struts2+Ajax实现数据交互