樹狀陣列 POJ 2481 Cows

2021-08-19 21:57:40 字數 1014 閱讀 2736

給出一些奶牛的座標,其中如果有x[i

]>x[

j]

x[i]>x[j]

x[i]

>x[

j]和y [i

]>y[

j]

y[i]>y[j]

y[i]

>y[

j],那麼奶牛i就比奶牛j強,求出比每個奶牛強的奶牛的個數。

這題和stars差不多,只不過是它的y座標不是按公升序輸入的,所以我們要給它們排序,以y座標從大到小排序,y相同時以x從小到大排序,利用樹狀陣列統計比當前奶牛強壯的的牛,並把當前牛加入樹狀陣列。注意奶牛的x和y都相等的時候需要特殊處理。

#include

#include

#include

using

namespace std;

int n,tree[

100001];

struct afa[

100001];

intlowbit

(int x)

intcmp

(af x,af y)

intcmp1

(af x,af y)

void

add(

int x)

intfind

(int x)

intmain()

sort

(a+1

,a+n+

1,cmp)

;for

(int i=

1;i<=n;i++

)else

}sort

(a+1

,a+n+

1,cmp1)

;//按照編號排序回來

for(

int i=

1;i<=n;i++

)printf

("%d "

,a[i]

.ans)

;printf

("\n");

}}

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從大到小排序,這樣保證遍歷時後出現的牛的上界一定滿足小於等於前面的,這樣只需要判斷他的下界滿不滿足就行,這就想到了用樹狀陣列。...