【洛谷P1774】最接近神的人
最接近神的人_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】最接近神的人相关推荐
- 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
- 洛谷 P1774 最接近神的人(权值线段树+离散化)
根据贪心,每次都要交换两个逆序对,所以这个题目就是求逆序对的个数 利用权值线段树来动态加点,每次询问找区间内 [id+1,n] 的所有数的个数,由于取值线段树本身具有顺序,所以可以将区间查询变为单点查 ...
- 洛古 P1774 最接近神的人
置顶题解 P1908 [逆序对] - zhylj 的博客 - 洛谷博客 链接里有过程图,但题解里的题大小顺序和本题是相反的,但问题不大 题目描述 破解了符文之语,小FF开启了通往地下的道路 ...
- 洛谷 1774 最接近神的人
[题解] 其实就是求逆序对.直接上树状数组就好了. 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring ...
- luogu P1774 最接近神的人_NOI导刊2010提高(02)
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
- 最接近神的人(sophist/pas/c/cpp)
最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上 ...
- 最接近神的人 reverse
最接近神的人 reverse [题目描述]: 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着&qu ...
- 试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)
试题二:最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案. ...
- 最接近神的人_NOI导刊2010提高(02)【洛谷P1774】
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
最新文章
- 矢量旋度的散度恒为零
- LNK1146: 没有用选项“/LIBPATH:”指定的参数
- python语法大全-总结了Python中的22个基本语法
- Python 字符串格式化输出方式
- vlan间ACL和VACL的区别
- gzip android,怎么在Android系统中使用gzip进行数据传递
- Yii2几个要注意的小地方
- Fiori Elements的metadata和ui annotation
- 百面机器学习——第一章特征工程
- WEB安全基础-HTML+PHP实践
- html返回顶部_Jquery实现一键返回顶部
- linux上设置svn账户权限设置密码,Linux:如何在svn中设置“全局”用户/密码/组文件...
- java虚拟机内存溢出的三个原因_java虚拟机学习(三) 内存溢出异常
- 用Java生成word文档
- UE4 Material 101学习笔记——23-29 水涟漪/水深/折射反射/Gerstner海浪/波光焦散/泡沫/FlowMap
- 洛谷 P5594 【XR-4】模拟赛 记录
- TLS远程信息泄露 心脏滴血 CVE-2014-0160 漏洞复现
- CG共轭梯度下降法【学习笔记、例题与代码】
- CC(标准)版D碟收藏指南(二)
- LeetCode 2296. 设计一个文本编辑器(双栈)
热门文章
- 基础省选+NOI-第4部分 动态规划
- 2.3基本算法之递归变递推 1188 菲波那契数列(2)
- javascript经典实例_一道前端经常忽视的JavaScript面试题
- CANopen | 对象字典OD 01 - canfestival对象字典编辑软件安装与使用
- C++设计模式-面向对象程序设计要点以及封装性特点
- Qt工作笔记-使用Qt Creator运行和调试运行结果不一样(参数没有初始化)
- 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...
- php正则学习,php中正则表达式的学习及应用
- onenote 思维导图_学生党做笔记,我为什么更推荐OneNote?看后你就明白了
- activemq中怎么知道推送消息是否成功_ActiveMQ安装试用示列