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