對於每個詢問,我們先考慮插入1~r中每個數的答案,這樣子就不用考慮後面數對現在的影響

那麼我們可以在權值線段樹的每一個位置存儲每一個值最後一次結束的位置

問題變成了,如何判斷區間連續?

我們可以對線段樹對應區間所有節點權值取最小值,我們發現如果有一個值<l,那麼有一個數不在區間內出現,區間就不連續,否則區間就連續

#include<bits/stdc++.h>
using namespace std;
#define N 200010
int n,m,a[N],lc[N<<5],rc[N<<5],rt[N],sz[N<<5],ct,la,t;
void ins(int &o,int p,int l,int r,int x,int y){
	if(!o)o=++ct;
	if(l==r){
		sz[o]=y;
		return;
	}
	int mid=(l+r)/2;
	if(x<=mid){
		rc[o]=rc[p];
		ins(lc[o],lc[p],l,mid,x,y);
	}
	else{
		lc[o]=lc[p];
		ins(rc[o],rc[p],mid+1,r,x,y);
	}
	sz[o]=min(sz[lc[o]],sz[rc[o]]);
}
int q(int o,int p,int l,int r,int x){
	if(l==r)return l;
	int mid=(l+r)/2;
	if(sz[lc[o]]>=x)return q(rc[o],rc[p],mid+1,r,x);
	return q(lc[o],lc[p],l,mid,x);
}
int main(){
	freopen("mex.in","r",stdin);
	freopen("mex.out","w",stdout);
	scanf("%d%d%d",&n,&m,&t);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		ins(rt[i],rt[i-1],0,1e9+5,a[i],i);
	}
	while(m--){
		int l,r;
		scanf("%d%d",&l,&r);
		if(t)l^=la,r^=la;
		la=q(rt[r],rt[l-1],0,1e9+5,l);
		printf("%d\n",la);
	}
}

jzoj5710的更多相关文章

随机推荐

  1. Html使用Iframe无刷新上传文件,后台接收

    html代码:我是发送请求到teacher_center.aspx,不是到.ashx一般处理程序里,需要加 runat="server",有空我再试试发送请求到 .ashx 里 & ...

  2. Template msg

    http://blog.csdn.net/xiejiawanwei2_bb/article/details/40680493 {{first.DATA}} 日期:{{Day.DATA}} 报警类型:{ ...

  3. c++ 中的符号与关键字

    符号按照符号的ASC码数值从小到达排列,关键字按照英文字母排序. & [38] 位运算:取地址:左值引用[指针.引用都是可以做类型转换的] #include <iostream> ...

  4. hg 添加用户

    .hg目录下hgrc文件 [ui] username = lyd

  5. ubuntu and centos各种上网代理设置

    1.Ubuntu 一. apt-get 代理设置 由于公司通过代理上网,firefox的代理设置很容易就搞定了,但是通过apt-get安装软件还是不行,于是,查阅了很多资料,最多的方法就是网上流传的三 ...

  6. 在命令提示符(cmd)下怎样复制粘贴

      我们把鼠标放在面板的上方,右击,界面显示如下:   我们选择“属性”,单击,界面显示如下:   我们点选“快速编辑模式”,再点击“确定”,这样设置就完成了,界面显示如下:   我们在面板中随意选择 ...

  7. 编译HBase1.0.0-cdh5.4.2版本

    1. 编译环境准备 Jdk:1.7.0_x Maven : 3.3.9 hbase: cdh5.4.2-release 2. 用idea打开项目 使用git clone得到HBase源码.打开git: ...

  8. Redis为什么是单线程

    转自:https://www.zhihu.com/question/23162208 https://www.zhihu.com/question/55818031:加了一些个人的理解. Redis为 ...

  9. ROM初始化HEX文件

    intel hex格式 记录格式 Intel HEX由任意数量的十六进制记录组成.每个记录包含5个域,它们按以下格式排列: :llaaaatt[dd...]cc 每一组字母对应一个不同的域,每一个字母 ...

  10. modelsim编译altera的库

    http://www.cnblogs.com/LJWJL/p/3515586.html 在modelsim的安装目录下,把配置文件modelsim.ini的只读属性去掉,然后在modelsim中运行T ...