我們在處理陣列問題時,如需要求逆序數,然而資料給的又特別大,此時我們就可以用陣列的離散處理來解決了。
當數的範圍比較大時需要進行
離散化,即先排個序,再重新編號。
如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...