3289

思路:

  莫队求区间逆序对个数,树状数组维护;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxn 50005
int bel[maxn],blo;
struct QueryType {
int l,r,id;
bool operator<(const QueryType pos)const
{
if(bel[l]==bel[pos.l]) return r<pos.r;
return bel[l]<bel[pos.l];
}
};
struct QueryType qu[maxn];
int n,m,ai[maxn],bi[maxn],tree[maxn],size,now,ans[maxn];
inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
}
inline int lowbit(int x)
{
return x&(-x);
}
inline void add(int x,int di)
{
while(x<=n)
{
tree[x]+=di;
x+=lowbit(x);
}
}
inline int sum(int l,int r)
{
int res=;l--;
while(r) res+=tree[r],r-=lowbit(r);
while(l) res-=tree[l],l-=lowbit(l);
return res;
}
inline void updatar(int x,bool di)
{
x=ai[x];
if(di)
{
if(x<size) now+=sum(x+,size);
add(x,);
}
else
{
if(x<size) now-=sum(x+,size);
add(x,-);
}
}
inline void updatal(int x,bool di)
{
x=ai[x];
if(di)
{
if(x>) now+=sum(,x-);
add(x,);
}
else
{
if(x>) now-=sum(,x-);
add(x,-);
}
}
int main()
{
in(n),blo=sqrt(n);
for(int i=;i<=n;i++) in(ai[i]),bi[i]=ai[i],bel[i]=(i+)/blo;
sort(bi+,bi+n+),size=unique(bi+,bi+n+)-bi-;
for(int i=;i<=n;i++) ai[i]=lower_bound(bi+,bi+size+,ai[i])-bi;
in(m);
for(int i=;i<=m;i++) in(qu[i].l),in(qu[i].r),qu[i].id=i;
sort(qu+,qu+m+);int l=,r=;
for(int i=;i<=m;i++)
{
while(r<qu[i].r) updatar(++r,true);
while(r>qu[i].r) updatar(r--,false);
while(l>qu[i].l) updatal(--l,true);
while(l<qu[i].l) updatal(l++,false);
ans[qu[i].id]=now;
}
for(int i=;i<=m;i++) printf("%d\n",ans[i]);
return ;
}

最新文章

  1. javascript中变量提升的理解
  2. CoffeeScript实现Python装潢器
  3. IOS ReactiveCocoa
  4. js地区转盘抽奖插件
  5. linux学习之——vim简明教程
  6. SQL中group by的用法
  7. java (基本语法)
  8. Ajax实现提交表单时验证码自动验证(原创自Zjmainstay)
  9. uploadify
  10. 使用Areas分离ASP.NET MVC项目
  11. haskell笔记1
  12. Stream消息流 和 Stream Grouping 消息流组
  13. 如何把关联性的告警智能添加到 Nagios 上?(2)
  14. Device.js——检测设备平台、操作系统的Javascript 库
  15. JVM-触发Full GC的情况
  16. 一个web.Config或app.Config自定义段configSections的示例
  17. 使用jackson工具类把对象或集合转为JSON格式
  18. wpf 客户端【JDAgent桌面助手】开发详解(二)桌面宠物制作详解
  19. generatorConfig.xml
  20. 获取当前函数名 __FUNCTION__ 的使用&lt;转&gt;

热门文章

  1. 解决 cmd dos 下 无法显示中文
  2. MFC:CTime类和CTimeSpan类
  3. select和epoll概念
  4. [mysql]数据库引擎查看
  5. Difference between List View and DataGrid in WPF
  6. 让ie8、ie9支持媒体查询
  7. C# 后台获取请求来源、文件下载
  8. C11简洁之道:类型推导
  9. J2EE保留小数问题
  10. Java中哈希表(Hashtable)是如何实现的