逆序對 洛谷 1908

2021-07-26 11:11:24 字數 1338 閱讀 9892

題目描述

貓貓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個數。...