POJ 2481 Cows 陣列陣列求逆序對

2022-04-10 02:38:26 字數 748 閱讀 1209

給你n個區間,讓你求每個區間被真包含的區間個數有多少,注意是真包含,所以要是兩個區間的x y都相同就算0。(類似poj3067,cf652d)

對每個區間的x從小到大排序,相同的話按y從大到小排序。然後對列舉每個區間的y求其逆序對,然後在y的位置上置1。但是存在兩個區間完全重合,我的做法比較搓,就是判斷和前乙個區間是否完全相同,要是相同,就把前乙個答案賦值給這個。

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;

6const

int maxn = 1e5 + 5

;7 typedef long

long

ll;8

intbit[maxn] , m , ans[maxn];

9struct

data

16}a[maxn];

1718 inline void add(int

i) 22

23int sum(int

i) 29

30int

main()

3142 sort(a , a +n);

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

47else

50add(a[i].y);51}

52for(int i = 0 ; i < n ; i++) 58}

59 }

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