資料結構

9/18 校內培訓

講師介紹

326 陳頎恩

有沒看過的嗎?

STL 到底可以幹嘛?

練習題 I

CSES 1619

  • 你開了一家餐廳,今天有 \(n\) 個客人會來訪
  • 第 \(i\) 個客人會在時間 \(l_i\) 到達,在時間 \(r_i\) 離開 
  • 輸出最多同時會有幾個人在餐廳

\(1 \leq n \leq 2 \cdot 10^5\)

\(1 \leq a \leq b \leq 10^9\)

 

練習題 II

CSES 1163

  • 有一條長度為 \(x\) 的街道,一開始上面沒有任何紅綠燈
  • 接下有 \(n\) 個紅綠燈會被加裝,第 \(i\) 個紅綠燈會被裝到座標上 \(p_i\) 的位置
  • 每次裝完一個紅綠燈後請輸出「最長沒有紅綠燈」的路段

\(1 \leq n \leq 2 \cdot 10^5\)

\(1 \leq x \leq 10^9\)

\(0 \leq p_i \leq x\)

練習題 III

CSES 1662

給定長度為 \(n\) 的陣列,計算滿足總和為 \(n\) 的倍數的子陣列數

 

\(1 \leq n \leq 2 \cdot 10 ^ 5\)

\(-10^9 \leq a_i \leq 10 ^ 9\)

習題

總結

  • 利用資料的特性維護資料結構!
    • 特性:\(\max(x,x)=x\)
      • max、min、and、or、gcd..
  • 只維護「必要的」藍線來降低複雜度

CODE

P. S. 個人習慣 1-based、左閉右閉

習題

CSES 1647 (模板題)

CF 475D (P. S. 此題有 \(O(n)\) 的另解,請先想如何使用 Sparse Table解)

 

CODE

習題

CODE

  • 陣列型線段樹:id 指向 2 * id 和 2 * id + 1,降低實作複雜度 & 常數

習題

資料結構

By ck1110530

資料結構

  • 137