大力分块+树状数组+主席树……

#include<bits/stdc++.h>
#define N 50005
#define pa pair<int,int>
#define fi first
#define sc second
using namespace std;
int n,m,cnt,tot,size,t;
int a[N],c[N],num[N],rt[N];
int sum[][N];
inline int lowbit(int x){return (x&(-x));}
pa b[N];
struct Persistenable_Segment_Tree{
int ls[*N],rs[*N],size[*N],cnt;
void ins(int &x,int pre,int l,int r,int q){
x=++cnt;size[x]=size[pre]+;
if(l==r)return;
ls[x]=ls[pre];rs[x]=rs[pre];
int mid=(l+r)>>;
if(q<=mid)ins(ls[x],ls[pre],l,mid,q);
else ins(rs[x],rs[pre],mid+,r,q);
}
int query(int x,int pre,int l,int r,int ql,int qr){
if(size[x]==size[pre])return ;
if(ql<=l&&r<=qr)return size[pre]-size[x];
int mid=(l+r)>>,ans=;
if(ql<=mid)ans+=query(ls[x],ls[pre],l,mid,ql,qr);
if(qr>mid)ans+=query(rs[x],rs[pre],mid+,r,ql,qr);
return ans;
}
}T;
inline void add(int x,int val){
for(int i=x;i<=tot;i+=lowbit(i))c[i]+=val;
}
inline int ask(int x){
int ans=;
for(int i=x;i;i-=lowbit(i))ans+=c[i];
return ans;
}
//bit
int query(int x,int y){
int ans=;
if(num[x]==num[y]){
memset(c,,sizeof(c));
for(int i=x;i<=y;++i)ans+=ask(tot)-ask(a[i]),add(a[i],);
return ans;
}
ans=sum[num[x]+][y];
for(register int i=x;i<=size*num[x];++i)ans+=T.query(rt[i],rt[y],,tot,,a[i]-);
return ans;
}
//block
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int LastOrder=;
int main(){
n=read();size=round(sqrt(n));
for(int i=;i<=n;i++)b[i].fi=read(),b[i].sc=i;
sort(b+,b+n+);
for(int i=;i<=n;i++){
if(i==|b[i].fi!=b[i-].fi)++tot;
a[b[i].sc]=tot;
}
for(int i=;i<=n;i++)T.ins(rt[i],rt[i-],,tot,a[i]);
for(int i=;i<=n;i++)num[i]=(i-)/size+;
for(int i=;i<=num[n];i++){
memset(c,,sizeof(c));
for(int j=(i-)*size+;j<=n;j++){
sum[i][j]=sum[i][j-]+ask(tot)-ask(a[j]);
add(a[j],);
}
}
m=read();
for(int i=;i<=m;i++){
int x=read(),y=read();x^=LastOrder;y^=LastOrder;
LastOrder=query(x,y);
printf("%d\n",LastOrder);
}
return ;
}

最新文章

  1. 10月30日下午 PHP精确查询(模糊查询、模糊+关键字共同查询)
  2. 数据存储之CoreData
  3. 使用方法:mail_sendmail($params)
  4. [转]Linux中文件权限目录权限的意义及权限对文件目录的意义
  5. HDU 1846 Brave Game(简单巴什博弈)
  6. 数据库性能测试---前阿里数据库团队资深DBA杨奇龙
  7. 重载VerifyRenderingInServerForm
  8. Ruby自学笔记(五)— 条件判断
  9. 构造AJAX参数, 表单元素JSON相互转换
  10. linux 下 Fatal error: Class ‘mysqli’ not found in
  11. 简单介绍Tomcat
  12. Linux中的configure,make,make install到底在做些什么
  13. struts框架的运行原理和流程
  14. SFTP Using Chilkat Active component
  15. TMS320VC5509启动模式选择
  16. &lt;context-param&gt; 标签引出的 web.xml 文件的加载顺序 [转]
  17. VR资源浏览网站
  18. toolbox类
  19. PHP time() date() strtotime()日期函数总结
  20. 组合数问题(NOIP2016)

热门文章

  1. 孤荷凌寒自学python第七十三天开始写Python的第一个爬虫3
  2. Cross Entropy in Machine Learning
  3. LeetCode 92 ——反转链表 II
  4. 1.16. BIP39协议:使用助记词生成确定性钱包
  5. lintcode-98-链表排序
  6. 深入理解Java Web——Servlet
  7. Flink之状态之checkpointing
  8. P4754 True Vegetable
  9. P2574 XOR的艺术
  10. 移动开发:美团外卖Android Lint代码检查实践