vector妙用轻松水过平衡树???
极短代码预警
今天听身边的神仙说,可以用vector来写平衡树,代码极短。
然后去网上搜了一下,看到了attack dalao的这篇文章。
蒟蒻表示ssfd
赶紧膜拜了一波,并发表了一篇博客表示纪念。
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
vector<int>v;
int n,opt,x;
int main()
{
v.reserve(100001);
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&opt,&x);
if(opt==1) v.insert(lower_bound(v.begin(),v.end(),x),x);
if(opt==2) v.erase (lower_bound(v.begin(),v.end(),x));
if(opt==3) printf("%d\n",lower_bound(v.begin(),v.end(),x)-v.begin()+1);
if(opt==4) printf("%d\n",v[x-1]);
if(opt==5) printf("%d\n",v[lower_bound(v.begin(),v.end(),x)-v.begin()-1]);
if(opt==6) printf("%d\n",v[upper_bound(v.begin(),v.end(),x)-v.begin()]);
}
return 0;
}
实测轻松碾压我的splay和fhq。。。。。