试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)
来源:互联网 发布:淘宝账号被永久封号 编辑:程序博客网 时间:2024/05/22 07:41
试题二:最接近神的人(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 a,b,c,d:array[0..500000] of longint;n,m,i,j,k:longint;sum:int64;procedure sort(l,r:longint);var i,j,k,mid,l1,l2,n1,n2:longint;begin if l>=r then exit; mid:=(l+r) div 2; sort(l,mid); sort(mid+1,r); n1:=mid-l+1; n2:=r-mid; for i:=1 to n1 do a[i]:=c[l+i-1]; for i:=1 to n2 do b[i]:=c[mid+i]; l1:=1; l2:=1; a[n1+1]:=maxlongint; b[n2+1]:=maxlongint; for i:=l to r do if a[l1]<=b[l2] then begin c[i]:=a[l1]; inc(l1); end else begin c[i]:=b[l2]; inc(l2); inc(sum,n1-l1+1); end;end;begin assign(input,'sophist.in'); assign(output,'sophist.out'); reset(input); rewrite(output); readln(n); for i:=1 to n do read(c[i]); sum:=0; sort(1,n); writeln(sum); {for i:=1 to n do writeln(c[i]);} close(input); close(output);end.
- 试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)
- 最接近神的人(sophist/pas/c/cpp)
- 【NOI导刊】【归并排序求逆序对】最接近神的人
- 电路稳定性(cir.pas/c/cpp)(栈的应用)
- 逃亡的准备(hallows.pas/c/cpp)
- 青蛙的烦恼 (frog.pas/c/cpp)
- 试题三:古代人的难题( puzzle.pas/c/cpp) 斐波那契数列
- 机器分配(machine.c/cpp/pas)
- 传球游戏(ball.pas/c/cpp)
- BSOI_2016.旅行 (comf.pas/c/cpp)
- 平方根(sqrt.pas/c/cpp)(数论)
- mm.cpp/c/pas
- set.cpp/c/pas
- 试题四:宝物筛选(Treasure.pas/c/cpp)
- 【对中点】圆圈舞蹈 circle.pas/c/cpp
- 火星人(martian.pas/c/cpp)
- 飙车[nfs.pas/c/cpp]
- 船(ships.pas/c/cpp)
- Silverlight中的PagedCollectionView
- C语言的一个关键字——static
- 视图(view)
- Robert Scoble炮轰Google:我希望Google+ pages从未出现过
- U-boot的环境变量: bootcmd 和bootargs
- 试题二:最接近神的人(sophist/pas/c/cpp) (逆序对)
- 常见时区缩写
- 修改hosts文件无效解决办法
- VS 2010编译Gh0st 3.6
- Retrieving Media from a Content Resolver
- 借船过河:一个据说能看穿你的人性和欲望的心理测试
- window.open居中显示,模式窗口
- 如何使用EnumSet实现基于bit field的enum set?
- tyvj-1144 股票 DP