POJ2481Cows 樹狀陣列

2021-08-21 20:27:26 字數 938 閱讀 2556

題意

計算每個區間有多少個包含他的區間。

本題和poj 2352的stras差不多,把區間看出二維座標上的點,這可以看出在該點左上方的點數及為包含的區間數。

因此可以按照y從大到小的順序排列,y相同的則按照x從小到大排列,就可以把二維的點變成用樹狀陣列維護x就行了。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long

int ll;

const

int man=1e5+10;

const

int n=1e5+10;

int a[n],val[n];

struct node

int sum(int x)

return ans;

}void add(int x)

}int main()

sort(p,p+n);

val[p[0].id]=sum(p[0].x);

add(p[0].x);

for(int i=1;iif(p[i].x==p[i-1].x&&p[i].y==p[i-1].y)

else

add(p[i].x);

}for(int i=0;iif(i==0)

printf("%d",val[i]);

else

printf(" %d",val[i]);

}printf("\n");

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