題目描述
貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為「逆序對」的東西,這東西是這樣定義的:對於給定的一段正整數序列,逆序對就是序列中ai>aj且i#1:65
4263
1輸出樣例#1:
11題解:這道題用歸併排序。
var a:array[1..40000]of longint;
ans,c,n:longint;
procedure
he(i,t,j:longint);
var m,n:array[1..20000]of longint;
z,x,y:longint;
begin
for z:=i to t do
m[z-i+1]:=a[z];
for z:=t+1
to j do
n[z-t]:=a[z];
x:=1;y:=1;
for z:=i to j do
begin
if (x<=t-i+1)and(y<=j-t) then
begin
if m[x]>n[y] then
begin
ans:=ans+(t-i+2-x);
a[z]:=n[y];
inc(y);
endelse
begin
a[z]:=m[x];
inc(x);
end;
endelse
begin
if x<=t-i+1
then
begin a[z]:=m[x];inc(x);end;
if y<=j-t then
begin a[z]:=n[y];inc(y);end;
end;
end;
end;
procedure
fen(i,j:longint);
var t:longint;
begin
if i<>j then
begin
t:=(i+j)div
2; fen(i,t);
fen(t+1,j);
he(i,t,j);
end;
end;
begin
read(n);
for c:=1
to n do
read(a[c]);
fen(1,n);
write(ans);
readln;readln;
end.
洛谷 1908 逆序對
貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中ai aj且i第一行,乙個數n,表示序列中有n個數。第二行n個...
洛谷 P1908 逆序對
題目描述 貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中ai aj且i var i,n,t longint ...
洛谷P1908 逆序對
貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中ai aj且i輸入格式 第一行,乙個數n,表示序列中有n個數。...