做題記錄 CQOI2011 動態逆序對

2022-09-18 14:57:13 字數 393 閱讀 7836

對於序列 \(a\),它的逆序對數定義為集合

\[\\]

中的元素個數。

現在給出 \(1\sim n\) 的乙個排列,按照某種順序依次刪除 \(m\) 個元素,你的任務是在每次刪除乙個元素之前統計整個序列的逆序對數。

\(1\le n \le 10^5\),\(1\le m \le 50000\)

考慮反過來做,變成插入和詢問逆序對。

這樣只需要關心每次新增了多少逆序對。

那麼乙個數 \(now\) 產生逆序對當且僅當:

\(pos_i且 \(val_i>val_\)

或者\(pos_j>pos_\) 且 $ val_j並且滿足其刪除時間在 \(now\) 後。

那麼這就是個三維偏序(\(pos,val,time\))。

Cqoi2011 動態逆序對

主席樹套樹狀陣列。主席樹第一題。鏈結靜態的逆序對問題很簡單,用線段樹或者是樹狀陣列即可解決。現在的問題是如何解決一道動態的逆序對問題?我們先把所有的逆序對統計出來。每次刪除數,我們可以把這個數對於逆序對個數的貢獻刪除出去。這個貢獻如何統計呢?front i 記錄i位置之前有多少個數比這個數大 bac...

CQOI2011 動態逆序對

這是一道cdq分治的好題,這道題的前置知識是cdq分治解決三維偏序問題,如果不會這個話請先自行學習。首先第乙個答案很顯然就是逆序對的數量,然後後面每次的刪除操作,我們考慮把這個被刪除的點原先的貢獻從答案中拿掉。我們用y表示這個點的數,del表示第幾個被刪除,若沒有被刪除則del m 1 考慮每個點的...

CQOI2011 動態逆序對

點此看題 考慮c dq cdqcd q,有三個值 t,d,v t,d,v t,d,v 要求t i t iti d i d idi v i vj v i v j vi vj 很容易看出來是三維偏序的板題,我們先保證t tt的有序,cdq cdqcd q的時候排序d dd,然後用樹狀陣列查詢v vv,貼...