陣列的離散化

2021-08-07 02:45:10 字數 791 閱讀 9946

我們在處理陣列問題時,如需要求逆序數,然而資料給的又特別大,此時我們就可以用陣列的離散處理來解決了。

當數的範圍比較大時需要進行

離散化,即先排個序,再重新編號。

如a =

,那麼離散化後

a =

。 附上**:

下面在介紹一種更簡單的用stl來處理的離散化,這裡要運用到lower_bound()函式,

**:#include #include using namespace std;

const int maxn=15;

int main()

sort(b+1,b+1+n);

for(i=1;i<=n;i++)

for(i=1;i<=n;i++)

cout<

離散化 樹狀陣列

題目描述 erwin最近對一種叫 thair 的東西巨感興趣。在含有n個整數的序列a1,a2 an中,三個數被稱作 thair 當且僅當i求乙個序列中 thair 的個數。輸入格式 開始乙個正整數n,以後n個數a1 an。輸出格式 thair 的個數 思路 列舉中間的數字,求排在它前面,小於它的有幾...

Flowers 樹狀陣列 離散化

題意 給你一些花,以及這些花開花的時間,問你在某一時間開花的總個數 很明顯的樹狀陣列題,插線問點。ac include include include include include define n 1000005 using namespace std typedef struct node n...

排序(離散化 樹狀陣列)

題目 資料範圍大,交換相鄰的的樹,使有序 解題說明 關鍵是知道,每個數交換的次數是其前面比它大的樹的個數。用樹狀陣列維護一下 ac include include include includeusing namespace std typedef long long ll const int ma...