POJ 2181 Cows 樹狀陣列

2021-06-09 14:06:22 字數 860 閱讀 5086

題意:有一些牛,這些牛有乙個屬性值,這個屬性值的範圍給出,為si,ei,若si <= sj && ei >= ej && ei - si > ej - sj,則稱牛i是比牛j強壯的。問對於每只牛,有多少只牛比其強壯。

思路:樹狀陣列,可以對e按公升序排序,這樣在j前面的e值一定比j的e值大,因此只需要考慮s值即可,就可以用樹狀陣列了。這道題也從根本上改變了我對樹狀 陣列的認識。樹狀陣列不僅可以 在一維上使用,而且可以在二維上使用,甚至在關係上使用。這時,我們可以先固定一維,然後對另一維使用樹狀陣列。這道題受益很多。

**:

#include #include #include #include using namespace std;

const int n = 100010;

struct intervalrr[n];

int num[n];

bool cmp1(interval a,interval b)

bool cmp2(interval a,interval b)

int lowbit(int x)

int sum(int x)

return s;

}void update(int pos,int add)

}int main()

sort(rr,rr+n,cmp1);

for(int i = 0; i < n; ++i)

rr[i].cnt -= s;

update(xx,1);

update(yy+1,-1);

}sort(rr,rr+n,cmp2);

for(int i = 0; i < n; ++i)

} return 0;

}

POJ 2481 Cows 樹狀陣列

樹狀陣列 其實這題和 poj 2352 或者 就是道用樹狀陣列求逆序數的題目。先排序,我的排序是按照先s從小到大,如果s相等 e從大到小。貌似也沒什麼了。就樹狀陣列吧。include include include include include define inf 0x7fffffff defi...

poj 2481 Cows (樹狀陣列)

小記 之前沒做什麼修改之前,在poj上提交1393ms ac了。然後在hdu的web diy裡提交gnu c 超時了 於是不斷的改,在輸出的地方花費時間太多了。就是為了保證每兩個數之間有乙個空格,然後末尾沒有空格,我在for裡面加了乙個判斷,只要不是末尾就輸出乙個空格。然後就這樣超時了。樹狀陣列全用...

poj 2481 Cows(樹狀陣列)

題意 山坡上長滿三葉草,給定一群牛和他們喜愛的範圍 s,ei 如果一頭牛的s小於等於另一頭牛而e大於等於另一頭牛的,且s和e不同時相等,那麼這頭牛就比另一頭牛強壯。可以先對e從大到小排序,這樣保證遍歷時後出現的牛的上界一定滿足小於等於前面的,這樣只需要判斷他的下界滿不滿足就行,這就想到了用樹狀陣列。...