★★★   输入文件:inverse.in   输出文件:inverse.out   简单对比
时间限制:2 s   内存限制:128 MB

【题目描述】

对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。

【输入格式】

输入第一行包含两个整数nm,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。
 

【输出格式】

 
输出包含m行,依次为删除每个元素之前,逆序对的个数。

【样例输入】

5 4
1
5
3
4
2
5
1
4
2

【样例输出】

5
2
2
1 样例解释
(1,5,3,4,2)(1,3,4,2)(3,4,2)(3,2)(3)。

【提示】

N<=100000 M<=50000

【来源】

 

【题目来源】

耒阳大世界(衡阳八中) OJ 3295

树状数组+主席树

根cdq分治的速度差远了

屠龙宝刀点击就送

#include <algorithm>
#include <cstdio>
#define N 100005
typedef long long LL;
int n,m,a[N],pos[N],size,rt[N],ls[N*],rs[N*],sum[N*],tot;
inline int lowbit(int x) {return x&(-x);}
void update(int l,int r,int &x,int t,int v)
{
if(!x) x=++tot;
sum[x]+=v;
if(l==r) return;
int mid=(l+r)>>;
if(t<=mid) update(l,mid,ls[x],t,v);
else update(mid+,r,rs[x],t,v);
}
void modify(int x,int y,int v)
{
for(;x<=n;x+=lowbit(x))
update(,n,rt[x],y,v);
}
LL query(int l,int r,int x,int L,int R)
{
if(!x) return ;
if(L<=l&&r<=R) return sum[x];
int mid=(l+r)>>;LL ret=;
if(L<=mid) ret+=query(l,mid,ls[x],L,R);
if(R>mid) ret+=query(mid+,r,rs[x],L,R);
return ret;
}
LL ask(int l,int r,int L,int R)
{
LL ret=;
for(int i=l-;i;i-=lowbit(i)) ret-=query(,n,rt[i],L,R);
for(int i=r;i;i-=lowbit(i)) ret+=query(,n,rt[i],L,R);
return ret;
}
int main()
{
freopen("inverse.in","r",stdin);
freopen("inverse.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i)
{
scanf("%d",&a[i]);
pos[a[i]]=i;
modify(i,a[i],);
}
LL ans=;
for(int i=;i<=n;++i) ans+=ask(,i-,a[i]+,n)+ask(i+,n,,a[i]-);
ans>>=;
for(int v;m--;)
{
printf("%lld\n",ans);
scanf("%d",&v);
v=pos[v];
ans-=ask(,v-,a[v]+,n)+ask(v+,n,,a[v]-);
modify(v,a[v],-);
}
return ;
}

COGS 1715. [CQOI2011]动态逆序对的更多相关文章

  1. BZOJ 3295: [Cqoi2011]动态逆序对

    3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3865  Solved: 1298[Submit][Sta ...

  2. Bzoj 3295: [Cqoi2011]动态逆序对 分块,树状数组,逆序对

    3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2886  Solved: 924[Submit][Stat ...

  3. bzoj3295[Cqoi2011]动态逆序对 树套树

    3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 5987  Solved: 2080[Submit][Sta ...

  4. P3157 [CQOI2011]动态逆序对(树状数组套线段树)

    P3157 [CQOI2011]动态逆序对 树状数组套线段树 静态逆序对咋做?树状数组(别管归并QWQ) 然鹅动态的咋做? 我们考虑每次删除一个元素. 减去的就是与这个元素有关的逆序对数,介个可以预处 ...

  5. P3157 [CQOI2011]动态逆序对

    P3157 [CQOI2011]动态逆序对 https://www.luogu.org/problemnew/show/P3157 题目描述 对于序列A,它的逆序对数定义为满足i<j,且Ai&g ...

  6. 2018.07.01 BZOJ3295: [Cqoi2011]动态逆序对(带修主席树)

    3295: [Cqoi2011]动态逆序对 **Time Limit: 10 Sec Memory Limit: 128 MB Description 对于序列A,它的逆序对数定义为满足i<j& ...

  7. [BZOJ3295][Cqoi2011]动态逆序对 CDQ分治&树套树

    3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec  Memory Limit: 128 MB Description 对于序列A,它的逆序对数定义为满足i<j,且 ...

  8. bzoj千题计划146:bzoj3295: [Cqoi2011]动态逆序对

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小 ...

  9. BZOJ3295: [Cqoi2011]动态逆序对(树状数组套主席树)

    3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 7465  Solved: 2662[Submit][Sta ...

随机推荐

  1. FASTQ格式

    FASQT格式是用于存储生物序列(通常是核苷酸序列)及其相应的碱基质量分数的一种文本格式.为简洁起见,序列字母和质量分数均使用单个ASCII字符进行编码.最初由Wellcome Trust Sange ...

  2. linux系统下file使用的magic文件格式说明

    magic 本手册是file命令所使用的magic文件的格式说明文档,版本是5.04. file命令用于识别文件类型,其他检测,检测文件内容中是否符合 'magic模式',也就是规则. /usr/sh ...

  3. Laravel框架接入短信平台进行用户注册短信验证

    今天刚接触了一个短信接口平台,云通讯第三方短信提供服务商.http://www.yuntongxun.com/ 然后介绍一下怎么使用该短信平台来接入到自己的项目中. 首先你的去注册一个账号,然后根据提 ...

  4. conntrack-tools使用

    基础用法 系统配置 ### 开启流数据包统计(packets和bytes) # echo "net.netfilter.nf_conntrack_acct=1" >> ...

  5. http://blog.csdn.net/wujunokay/article/details/44783383

    最近2周面试了一些人,有一些感触. 有的人工作几年,面向对象有几大特性.各特性之间的区别也不清楚:有的人,问他时,他说,这个简单,只是我不会,这些理论的东西在平时工作中,用的少:有的人,不清楚重载和重 ...

  6. 最优化理论-Simplex线性规划

     Sorry,各位,现在这里面啥也没,之所以开这篇文章,是防止以后用得到:现在研究这些,总感觉有些不合适,本人还不到那个层次:如果之后有机会继续研究simplex-线性规划问题,再回来参考下面的链接进 ...

  7. js混杂笔记

    1.判断对象为空的方法 1)Object.keys({}).length === 0 // true 2)Object.getOwnPropertyNames({}).length === 0 // ...

  8. sql server 2012 profiler打开2016的profiler

    软件环境:1.本机是sql server 2012,远程服务器是sql server 20162.本机是Windows 7,安装不了sql server 2016 问题场景1:本机sql server ...

  9. c#---delegate关键字

    http://www.cnblogs.com/wenjiang/archive/2013/03/12/2954913.html 注:只看红字 在C#中,delegate是一个神奇的关键字,值得拿出来单 ...

  10. 在centos中安装最新版nginx,同时更改官方文档路径错误

    nginx的可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g ++开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译 ...