離散化 樹狀陣列

2021-10-03 15:30:19 字數 1053 閱讀 3773

題目描述

erwin最近對一種叫"thair"的東西巨感興趣。。。

在含有n個整數的序列a1,a2…an中,

三個數被稱作"thair"當且僅當i求乙個序列中"thair"的個數。

輸入格式

開始乙個正整數n,

以後n個數a1~an。

輸出格式

"thair"的個數

思路:列舉中間的數字,求排在它前面,小於它的有幾個。

排在它後面,大於它的有幾個。使用兩次樹狀陣列就可以了。

坑點:陣列開long long,這樣每次用for清空陣列。memset沒辦法使用。

#include

#define maxn 31000

using namespace std;

typedef

long

long ll;

ll c[maxn]

;ll a[maxn]

,b[maxn]

,h[maxn]

;int n,m;

intlowbit

(int x)

void

add(

int x,ll d)

}ll sum

(int x)

return ans;

}int

main()

sort

(b+1

,b+1

+n);

int mm=

unique

(b+1

,b+1

+n)-b-1;

for(

int i=

1;i<=n;i++

) ll ans=0;

for(

int i=

1;i<=n;i++

) c[i]=0

;for

(int i=n;i>=

1;i--

)printf

("%lld\n"

,ans)

;return0;

}

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...

樹狀陣列 (離散化 樹狀陣列 求逆序對)

sample test s input 52 3 1 5 4 output 3 題目大意 求逆序對的個數 題目分析 求逆序對有很多方法,比如說用合併排序 分治 樹狀陣列 線段樹,甚至連暴力 氣泡排序 也可以做,但是要注意會不會超時。這裡就講一下樹狀陣列的方法,這一題最有意思的是離散化的方法,這個方法...