d064: P-5-4. 反序數量 (APCS201806)
標籤 : Binary Indexed Tree Segment Tree 分治
通過比率 : 274人/312人 ( 88% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-03-03 08:09

內容

考慮一個數列 $A[1:n]$。如果 $A$ 中兩個數字 $A[i]$ 和 $A[j]$ 滿足 $i<j$ AND $A[j]<A[i]$,也就是在前面的比較大,則我們說 $(A[i],A[j])$ 是一個反序對 $(inversion)$。

定義 W(A)為數列 A 中反序對數量。例如,在數列 $A=(3,1,9,8,9,2)$ 中,一共有 $(3,1)、(3,2)、(9,8)、(9,2)、(8,2)、(9,2)$ 一共 6 個反序對,所以 $W(A)=6$。

請注意到序列中有兩個 9 都在 2 之前,因此有兩個 $(9,2)$ 反序對,也就是說,不同位置的反序對都要計算,不管兩對的內容是否一樣。

請撰寫一個程式,計算一個數列 $A$ 的反序數量 $W(A)$。

輸入說明

第一行是一個正整數 $ n $ ,代表數列長度,

第二行有 $ n $ 個非負整數,是依序數列內容,數字間以空白隔開。

$ n $ 不超過 $ 1e5 $

數列內容不超過 $ 1e6 $ 。

輸出說明

輸出反序對數量。

範例輸入 #1
6
3 1 9 8 9 2
範例輸出 #1
6
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (20%): 2.0s , <1M
公開 測資點#1 (20%): 2.0s , <1M
公開 測資點#2 (20%): 2.0s , <1M
公開 測資點#3 (20%): 2.0s , <1M
公開 測資點#4 (20%): 2.0s , <1M
提示 :
標籤:
Binary Indexed Tree Segment Tree 分治
出處:
AP325 [管理者:
TCIRC ($\mathbb{TCFSH}\ \mathtt{Comp.}\ \&\ \mathsf{Info.}\ \mathit{Club}$)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」