最接近神的人_NOI导刊2010提高(02)

用类似于桶的方法,树状数组记录原序列的某位置之前已经插入了多少个数,

插入时树状数组单点加1即可

先排一遍序,从大到小插入所有数在原序列的位置,

统计每次插入时,在该元素前面元素的个数,

前面的元素是先插入的,比该元素大,而在序列中的位置靠前,

所以这个前缀和是逆序对数

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
#define int long long
#define lowbit(x) ((x)&(-(x)))
#define MAXN 500020
inline int read(){int x=0,f=1; char c=getchar();while(c<'0'||c>'9') { if(c=='-') f=-1; c=getchar(); }while('0'<=c&&c<='9') { x=(x<<3)+(x<<1)+c-'0'; c=getchar(); }return x*f;
}
int n,tree[MAXN<<2];
struct NODE{int pos,value;
} x[MAXN];
inline bool cmp(NODE x,NODE y){return x.value==y.value?x.pos<y.pos:x.value<y.value;
}
void update(int x){for(;x<=n;x+=lowbit(x))tree[x]++;
}
int query(int x){int ans=0;for(;x;x-=lowbit(x))ans+=tree[x];return ans;
}
#undef int
int main()
#define int long long
{scanf("%lld",&n);for(int i=1;i<=n;i++){x[i].value=read();x[i].pos=i;}sort(x+1,x+1+n,cmp);int ans=0;for(int i=n;i>=1;i--){ans+=query(x[i].pos);update(x[i].pos);}printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/yjkhhh/p/9261629.html

【洛谷P1774】最接近神的人相关推荐

  1. 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...

  2. 洛谷 P1774 最接近神的人(权值线段树+离散化)

    根据贪心,每次都要交换两个逆序对,所以这个题目就是求逆序对的个数 利用权值线段树来动态加点,每次询问找区间内 [id+1,n] 的所有数的个数,由于取值线段树本身具有顺序,所以可以将区间查询变为单点查 ...

  3. 洛古 P1774 最接近神的人

    置顶题解 P1908 [逆序对] - zhylj 的博客 - 洛谷博客​​​​​​ 链接里有过程图,但题解里的题大小顺序和本题是相反的,但问题不大 题目描述 破解了符文之语,小FF开启了通往地下的道路 ...

  4. 洛谷 1774 最接近神的人

    [题解] 其实就是求逆序对.直接上树状数组就好了. 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring ...

  5. luogu P1774 最接近神的人_NOI导刊2010提高(02)

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...

  6. 最接近神的人(sophist/pas/c/cpp)

    最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上 ...

  7. 最接近神的人 reverse

    最接近神的人 reverse [题目描述]: 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着&qu ...

  8. 试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)

    试题二:最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案. ...

  9. 最接近神的人_NOI导刊2010提高(02)【洛谷P1774】

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...

最新文章

  1. 矢量旋度的散度恒为零
  2. LNK1146: 没有用选项“/LIBPATH:”指定的参数
  3. python语法大全-总结了Python中的22个基本语法
  4. Python 字符串格式化输出方式
  5. vlan间ACL和VACL的区别
  6. gzip android,怎么在Android系统中使用gzip进行数据传递
  7. Yii2几个要注意的小地方
  8. Fiori Elements的metadata和ui annotation
  9. 百面机器学习——第一章特征工程
  10. WEB安全基础-HTML+PHP实践
  11. html返回顶部_Jquery实现一键返回顶部
  12. linux上设置svn账户权限设置密码,Linux:如何在svn中设置“全局”用户/密码/组文件...
  13. java虚拟机内存溢出的三个原因_java虚拟机学习(三) 内存溢出异常
  14. 用Java生成word文档
  15. UE4 Material 101学习笔记——23-29 水涟漪/水深/折射反射/Gerstner海浪/波光焦散/泡沫/FlowMap
  16. 洛谷 P5594 【XR-4】模拟赛 记录
  17. TLS远程信息泄露 心脏滴血 CVE-2014-0160 漏洞复现
  18. CG共轭梯度下降法【学习笔记、例题与代码】
  19. CC(标准)版D碟收藏指南(二)
  20. LeetCode 2296. 设计一个文本编辑器(双栈)

热门文章

  1. 基础省选+NOI-第4部分 动态规划
  2. 2.3基本算法之递归变递推 1188 菲波那契数列(2)
  3. javascript经典实例_一道前端经常忽视的JavaScript面试题
  4. CANopen | 对象字典OD 01 - canfestival对象字典编辑软件安装与使用
  5. C++设计模式-面向对象程序设计要点以及封装性特点
  6. Qt工作笔记-使用Qt Creator运行和调试运行结果不一样(参数没有初始化)
  7. 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...
  8. php正则学习,php中正则表达式的学习及应用
  9. onenote 思维导图_学生党做笔记,我为什么更推荐OneNote?看后你就明白了
  10. activemq中怎么知道推送消息是否成功_ActiveMQ安装试用示列