POJ 2481 Cows(樹狀陣列)

2022-06-20 21:42:13 字數 1020 閱讀 9446

題意:有n頭牛,每頭牛有乙個區間[s,e],求每頭牛比它區間大的牛的個數。

思路:先對資料進行一下排序,先按右座標按降序排列,那麼接下來我們只需要比較左座標的數值大小就可以了。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10

using

namespace

std;

1112

const

int maxn=1e5+5;13

14int

n;15

intc[maxn];

16int

ans[maxn];

17int

max;

1819

struct

node

20a[maxn];

2324

25bool

cmp(node a,node b)

2629

30int lowbit(int

x)31

3435

int sum(int

x)36

43return

ret;44}

4546

void add(int x,int

d)4753}

5455

intmain()

5671 sort(a+1,a+1+n,cmp);

72 ans[a[1].id]=0

;73 add(a[1].l,1

);74

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

7581 add(a[i].l,1

);82}83

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

8488 printf("\n"

);89}90

return0;

91 }

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