poj 2481 樹狀陣列

2021-05-27 07:05:08 字數 1032 閱讀 5110

//解法2:按si值做降序排序後,相當於求每個位置i左邊大於等於e[i]的個數

//樹狀陣列更新節點的路徑和求和的路徑要改變,getsum(i) 相當於求i+(i+1)+...+maxn

#include #include using namespace std;

const int maxn = 100010;

int sum[maxn];

struct cow

cow[maxn];

bool cmp1(const struct cow a, const struct cow b)

return a.s < b.s;

}bool cmp2(const struct cow a, const struct cow b)

int lowbit(int x)

//更新節點的路徑改變

void update(int x, int val)

}//求和的路徑改變 sum[4] = num[4]+num[5]+num[6]+num[7] ,sum[2]=num[2]+num[3]....

int getsum(int x)

cow[maxn];

bool cmp1(const struct cow a, const struct cow b)

return a.s < b.s;

}bool cmp2(const struct cow a, const struct cow b)

int lowbit(int x)

//更新節點的路徑改變

void update(int x, int val)

}//求和的路徑改變 sum[4] = num[4]+num[5]+num[6]+num[7] ,sum[2]=num[2]+num[3]....

int getsum(int x)

{ int s = 0;

for(int i=x; i>n,n)

{ memset(sum,0,sizeof(sum));

for(int i=0; i

poj 2481(樹狀陣列)

這題樹狀陣列明顯可解,不解釋,但是注意有相同的奶牛的處理 include include include include define n 100005 using namespace std int c n tem struct dian d n int cmp dian a,dian b int...

POJ2481 樹狀陣列

題意 給n個節點的s和e,求對於每個節點,其他節點和它的關係滿足si sj and ej ei and ei si ej sj 的個數 題解 由於e的關係遞減,s的關係遞增,因此可以先對e排序,然後利用樹狀陣列更新並查詢每個sj在其之前的si的個數就是問題的解 include include inc...

poj2481樹狀陣列

每個牛有乙個區間 s,e 兩個牛 s1,e1 s2,e2 當s1 s2並且e1 e2並且e1 s1 e2 s2時,我們說牛1比牛2強,給n個牛的區間,對於每個牛,輸出比這個牛強的牛的個數。還是需要預處理,先對每個牛的e進行降序排序,e相同時對s進行公升序排列,這樣迴圈時可以保證後邊的牛絕對不比前邊的...