码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj3685: 普通van Emde Boas树 set+读入优化

时间:2016-05-15 21:32:58      阅读:392      评论:0      收藏:0      [点我收藏+]

标签:

显然这题的所有操作都可以用set,但是直接用set肯定要T,考虑到读入量较大,使用fread读入优化,就可以卡过去了。

#include<bits/stdc++.h>
using namespace std;
void read(int& x){
	const int k=1600000;
	static char v,
	u[k],*s=u,*t=u;
	x=0;
	while(isspace(v=s==t
	&&u==(t=u+fread(s=u,
	1,k,stdin))?-1:*s++));
	do
		x=x*10+v-48;
	while(isdigit(v=s==t
	&&u==(t=u+fread(s=u,
	1,k,stdin))?-1:*s++));
}
int main(){
	set<int> s;
	set<int>::iterator i;
	int n,m,u,v;
	read(n),read(m);
	while(m--){
		read(u);
		if(u!=3&&u!=4)
			read(v);
		if(u==1)
			s.insert(v);
		if(u==2)
			s.erase(v);
		if(u==5)
			printf("%d\n",
			(i=s.lower_bound(v))
			!=s.begin()?*--i:-1);
		if(u==6)
			printf("%d\n",
			(i=s.upper_bound(v))
			!=s.end()?*i:-1);
		if(u==7)
			printf("%d\n",
			s.count(v)?1:-1);
		if(u==3)
			printf("%d\n",
			s.size()?*s.begin():-1);
		if(u==4)
			printf("%d\n",
			s.size()?*--s.end():-1);
	}
}

  

bzoj3685: 普通van Emde Boas树 set+读入优化

标签:

原文地址:http://www.cnblogs.com/f321dd/p/5496098.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!