【UOJ 51】最接近神的人
【题目描述】:
破解了符文之语,小FF开启了通往地下的道路。当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的问题是如何打开这扇门……
仔细研究后,他发现门上的图案大概是说:古代人认为只有智者才是最容易接近神明的。而最聪明的人往往通过一种仪式选拔出来。仪式大概是指,即将隐退的智者为他的候选人写下一串无序的数字,并让他们进行一种操作,即交换序列中相邻的两个元素。而用最少的交换次数使原序列变成不下降序列的人即是下一任智者。
小FF发现门上同样有着n个数字。于是他认为打开这扇门的秘诀就是找到让这个序列变成不下降序列所需要的最小次数。但小FF不会……只好又找到了你,并答应事成之后与你三七分……
【输入描述】:
第一行,一个数n,表示序列中有n个数。
第二行n个数,表示给定的序列。
【输出描述】:
给定序列的最少操作次数。
【样例输入】:
6
5 4 2 6 3 1
【样例输出】:
11
【时间限制、数据范围及描述】:
时间:1s 空间:128M
对于50%的数据,n<=2500
对于100%的数据,n<=40000。
-maxlongint<=ai<=maxlongint
题解:emm
using namespace std;const int N=1000005; int t,n,aa[N],c[N],i,ans;struct Node{int v; int order; }a[N];bool cmp(Node a,Node b){return a.v<b.v; }int lowbit(int k){return k&(-k); }void update(int t, int value){int i;for(i=t;i<=n;i+=lowbit(i)){c[i]+=value;} }int getsum(int t){int i,sum=0;for(i=t;i>=1;i-=lowbit(i)){sum+=c[i];}return sum; }int main(){scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i].v);a[i].order=i;}stable_sort(a+1,a+1+n,cmp);for(i=1;i<=n;i++){aa[a[i].order]=i;}for(i=1;i<=n;i++){update(aa[i],1);ans+=i-getsum(aa[i]);}printf("%d\n",ans);return 0; }
转载于:https://www.cnblogs.com/wuhu-JJJ/p/11196321.html
【UOJ 51】最接近神的人相关推荐
- 【洛谷P1774】最接近神的人
最接近神的人_NOI导刊2010提高(02) 用类似于桶的方法,树状数组记录原序列的某位置之前已经插入了多少个数, 插入时树状数组单点加1即可 先排一遍序,从大到小插入所有数在原序列的位置, 统计每次 ...
- 最接近神的人(sophist/pas/c/cpp)
最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上 ...
- 最接近神的人 reverse
最接近神的人 reverse [题目描述]: 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着&qu ...
- 试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)
试题二:最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案. ...
- luogu P1774 最接近神的人_NOI导刊2010提高(02)
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
- 最接近神的人_NOI导刊2010提高(02)【洛谷P1774】
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
- 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
- 【NOI导刊】【归并排序求逆序对】最接近神的人
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着"神的殿堂".小FF猜 ...
- 洛古 P1774 最接近神的人
置顶题解 P1908 [逆序对] - zhylj 的博客 - 洛谷博客 链接里有过程图,但题解里的题大小顺序和本题是相反的,但问题不大 题目描述 破解了符文之语,小FF开启了通往地下的道路 ...
最新文章
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
- 35岁的程序员,真的要转管理吗?
- 实例方法 java 1614780086
- python 输出文字_Python中输出ASCII大文字、艺术字、字符字小技巧
- linux脚本猜数字游戏,101个shell脚本 猜数字游戏代码
- 魔兽争霸---------常见简称
- jQuery - 不同版本的差异汇总(版本选择建议)
- 数据结构基础学习笔记目录
- 前端开发工程师,CSS盒子模型居中方法
- 计算机常用的输出设备有什么作用,常用的多媒体输入输出设备有哪些,主要功能是什么...
- 第九章 贝叶斯信念网络分类
- 家用智能摄像头横评:小米、华为海雀、TP-LINK、智汀
- C语言输入一个数,看它能否被3和5同时整除
- 【微信小程序】设置画布字体
- Excel 防止一列重复输入
- Anchor Base 和 Anchor Free
- 【ELK】02、ElasticSearch基础
- 台湾精锐APEX行星减速机直齿轮和斜齿轮有什么区别?如何选择?
- 单据点击套打设置报错,显示可用的套打单据列表时发生错误处理方法
- 安装windows_build_tools一直处于still waiting for installer log file ...中
热门文章
- python实现高效率的排列组合算法
- 并发编程——进程——生产者消费者模型
- Linux把应用放在桌面上
- 【Qt】Qt工程管理
- 【Linux】一步一步学Linux——chown命令(112)
- powermock跳过某方法_变频调速电动机产生机械共振原因和处理方法
- 机器人从计算机应用领域看,人的素质差异,本质地不在于他们即存知识信息量的差异,而在于他们思维能力的差异。( )...
- centos7 nat模式配置静态ip_Centos7设置静态IP后无法上网的解决方法
- Spark(6)——Spark与scala交互
- windows7不支持AllocateAndGetTcpExTableFromStack