天天看點

POJ2481 Cows 樹狀數組的簡單應用

題意給了你n頭牛,每頭牛的強壯值是一個區間[s,e],如果第 i 頭牛比第 j 頭牛強壯那麼必須滿足 si <= sj and ej <= ei and ei - si > ej - sj;

為了滿足這三個條件我們進行排序,先以e降序排為先決條件,若e相等則讓s升序排列,如此即可滿足三個條件,這道題目任意兩頭牛的強壯值區間有可能完全一樣,這樣就不需要重新用樹狀數組求一次和了,直接指派即可,這樣可以省很多時間,因為已經排序處理了,是以即便區間相等的  肯定就是相鄰的,是以直接掃一遍即可,若不想等則用樹狀數組求和,往樹狀數組裡添加的時候,以牛的s為序号,以1為value來加進去,這樣處理以後就跟poj2352簡直是一模一樣了