最接近神的人(sophist/pas/c/cpp)
最接近神的人(sophist/pas/c/cpp)
【题目描述】
破解了符文之语,小FF开启了通往地下的道路。当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的问题是如何打开这扇门……
仔细研究后,他发现门上的图案大概是说:古代人认为只有智者才是最容易接近神明的。而最聪明的人往往通过一种仪式选拔出来。仪式大概是指,即将隐退的智者为他的候选人写下一串无序的数字,并让他们进行一种操作,即交换序列中相邻的两个元素。而用最少的交换次数使原序列变成不下降序列的人即是下一任智者。
小FF发现门上同样有着n个数字。于是他认为打开这扇门的秘诀就是找到让这个序列变成不下降序列所需要的最小次数。但小FF不会……只好又找到了你,并答应事成之后与你三七分……
【输入格式】
第一行为一个整数n,表示序列长度
第二行为n个整数,表示序列中每个元素。
【输出格式】
一个整数ans,即最少操作次数。
【输入样例】
4
2 8 0 3
【输出样例】
3
样例说明:开始序列为2 8 0 3,目标序列为0 2 3 8,可进行三次操作的目标序列:
1.Swap (8,0):2 0 8 3
2.Swap (2,0):0 2 8 3
3.Swap (8,3):0 2 3 8
【数据范围】
对于30%的数据1≤n≤104。
对于100%的数据1≤n≤5*105;
-maxlongint≤A[i]≤maxlongint。
===============================
归并排序,求逆序对
========================
var
n:longint;
ans:int64;
a,g:array[0..500001]of longint;
procedure init;
begin
assign(input,'sophist.in');
assign(output,'sophist.out');
reset(input); rewrite(output);
end;
procedure terminate;
begin
close(input);close(output);
halt;
end;
procedure guibing(s,t:longint);
var
mid:longint;
i,j,k:longint;
begin
if s=t then exit;
mid:=(s+t) shr 1;
guibing(s,mid);
guibing(mid+1,t);
i:=s; j:=mid+1; k:=s;
while (i<=mid) and (j<=t) do
begin
if a[i]<=a[j] then
begin
g[k]:=a[i];
inc(i);
inc(k);
end
else
begin
g[k]:=a[j];
inc(j);
inc(k);
ans:=ans+mid-i+1;
end;
end;
while i<=mid do
begin
g[k]:=a[i];
inc(i); inc(k);
end;
while j<=t do
begin
g[k]:=a[j];
inc(j); inc(k);
end;
for i:=s to t do
a[i]:=g[i];
end;
procedure main;
var
i:longint;
begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
end;
ans:=0;
guibing(1,n);
writeln(ans);
end;
begin
init;
main;
terminate;
end.
最接近神的人(sophist/pas/c/cpp)相关推荐
- 试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)
试题二:最接近神的人(sophist/pas/c/cpp) [题目描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案. ...
- 【洛谷P1774】最接近神的人
最接近神的人_NOI导刊2010提高(02) 用类似于桶的方法,树状数组记录原序列的某位置之前已经插入了多少个数, 插入时树状数组单点加1即可 先排一遍序,从大到小插入所有数在原序列的位置, 统计每次 ...
- 最接近神的人 reverse
最接近神的人 reverse [题目描述]: 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着&qu ...
- 【UOJ 51】最接近神的人
[题目描述]: 破解了符文之语,小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开启了通往地下的道路 ...
最新文章
- java程序打包成exe安装包总结
- php编译自己库文件,php编译后追加库模块-gd库
- 去掉xcode中警告的一些经验
- 数据库 CURD测试题【中等】
- javascript event
- mysql盲注ascii_[翻译]关于通过对8bit的ascii做右位移提高mysql盲注效率
- [luogu5008]逛庭院
- 2020年日历可编辑内容模板_2020鼠年新春海报模板合集
- 空间查询时出错误 An expected Field was not found or could not be retrieved properly. [SHAPE.AREA] 问题的解决...
- Google Code注册方法详解 Google Code网盘申请方法
- 网易云音乐(纯CSS实战)
- 大三实习生,字节跳动面经分享,已拿Offer
- SBX(模拟二进制交叉)的代码(python)实现
- 北京奥运会赛事电视直播表(绝对完整)--每天就抱着电视看吧!
- DPU芯片头部企业云豹智能加入龙蜥社区,共同推动新一代数据中心基础设施蓬勃发展
- RDD与MapReduce对比
- 矩阵的QR分解以及在最小二乘法中的应用
- python判断正数和负数教案_正数和负数教案(教学设计)
- 山西大学c语言考试题,山西大学《876数据结构+C程序设计》考研题库详解
- 基于战舰V3的MPU6050六轴陀螺仪实验