codevs 4163 hzwer與逆序對

2022-05-09 17:28:56 字數 1424 閱讀 3472

時間限制: 1 s

空間限制: 256000 kb

題目等級 : ** gold

題解hzwer在研究逆序對。

對於數列,如果有序數對(i,j)滿足:ia[j],則(i,j)是一對逆序對。

給定乙個數列,求逆序對個數。

輸入資料較大,請使用scanf代替cin讀入。

*為防卡評測,時限調低至1s

輸入描述 input description

第一行乙個數n,表示有n個元素。

接下來n個數,描述。

輸出描述 output description

乙個數,表示逆序對個數。

樣例輸入 sample input

3 1 5 2 4

樣例輸出 sample output

資料範圍及提示 data size & hint

對於10%資料,1<=n<=100.

對於20%資料,1<=n<=10000.

對於30%資料,1<=n<=100000.

對於100%資料,1<=n<=1000000,1<=a[i]<=10^8.

tips:我沒有想故意卡你們時限。一點這樣的意思都沒有。你們不要聽風就是雨……

比賽已結束 詳細解析見題解

分類標籤 tags 點此展開 

連樹狀陣列求逆序對我都不會寫了,,好弱啊

關於怎麼實現,推薦一篇部落格

1 #include2 #include3 #include4 #include5 #include6

#define ll long long

7#define lb(x) ((x)&(-x))

8using

namespace

std;

9const

int maxn=40000001

;10 inline int

read()

1114

while(c>='

0'&&c<='

9') x=x*10+c-48,c=getchar();return x*f;15}

16int

n;17

inttree[maxn];

18int

a[maxn];

19int

data[maxn];

20 inline void point_add(int pos,int

val)

2127

}28 inline int interval_sum(int

pos)

2936

return

ans;37}

38int

main()

3950 printf("

%lld

",ans);

51return0;

52 }

CODEVS 電話連線

題目描述 description 乙個國家有n個城市。若干個城市之間有 線連線,現在要增加m條 線 線當然是雙向的了 使得任意兩個城市之間都直接或間接經過其他城市有 線連線,你的程式應該能夠找出最小費用及其一種連線方案。輸入描述 input description 輸入檔案的第一行是n的值 n 10...

codevs 石子歸併

codevs 1048 石子歸併 題目描述 description 有n堆石子排成一列,每堆石子有乙個重量w i 每次合併可以合併相鄰的兩堆石子,一次合併的代價為兩堆石子的重量和w i w i 1 問安排怎樣的合併順序,能夠使得總合併代價達到最小。輸入描述 input description 第一行...

CODEVS 倒水問題

題目描述 有兩個無刻度標誌的水壺,分別可裝 x 公升和 y 公升 x,y 為整數且均不大於 100 的水。設另有一水 缸,可用來向水壺灌水或接從水壺中倒出的水,兩水壺間,水也可以相互傾倒。已知 x 公升壺為空 壺,y 公升壺為空壺。問如何通過倒水或灌水操作,用最少步數能在x或y公升的壺中量出 z z...