讨论 / 动规+插排 拿出来供大家鄙视!
xiaoyangdi 2012-03-28 03:54:00
点我顶贴 收藏 删除
program fishxsx;

const maxn=20010;

var n:integer;

a,opt:array[0..maxn] of longint;

procedure init;

var i:integer;

begin

readln(n);

for i:=1 to n do readln(a[i]);

end;

procedure main;

var i,j,k:integer;

begin

fillchar(opt,sizeof(opt),0);

for i:=n-1 downto 1 do

begin

opt[i]:=opt[i+1];

for j:=i+1 to n+1 do

if a[i] > a[j] then begin inc(opt[i],n-j+1);break;end;

a[0]:=a[i];

for k:=i to j-1 do a[k]:=a[k+1];

a[k]:=a[0];

end;

end;

procedure print;

var i:integer;

begin

write(opt[1]);

end;

begin

init;

main;

print;

end.

#1 fts96@2012-03-28 03:54:00
回复 删除
实测此题模拟能过……

RT

查看更多回复
提交回复