Gym 101962I Colonial Mansions(二分答案 + 資料結構)
Description
給定長度為 n n n 的序列 h h h 和 q q q 次詢問
- 1 i H 1 \ i \ H 1 i H 將 h i h_i hi 修改為 H H H。
- 2 i H 2 \ i \ H 2 i H 詢問從 i i i 出發可以移動的數的個數。對於 h i , h i + 1 h_i,h_{i+1} hi,hi+1,它們可以互相移動的條件為 ∣ h i − h i + 1 ∣ ≤ H |h_i - h_{i+1}| \leq H ∣hi−hi+1∣≤H。
1 ≤ n , q ≤ 1 0 5 , 0 ≤ h i , H ≤ 1 0 9 1 \leq n,q \leq 10^5, 0 \leq h_i,H \leq 10^{9} 1≤n,q≤105,0≤hi,H≤109。
Solution
涉及了區間操作是線段樹了。用線段樹維護區間內相鄰兩個數的最大差值,如果差值 < H <H <H 那麼該區間的數都可以達到,對於長為一的區間差值可以賦值為 0 0 0。那麼查詢操作時,分別進行兩次以 [ 1 , i ] [1,i] [1,i] 和 [ i , n ] [i,n] [i,n] 兩次二分即可。
線段樹單點修改區間查詢,也不用懶標記。上傳資訊還有查詢時要討論兩個區間相交處對答案的貢獻。時間複雜度 O ( n log 2 n ) O(n \log^2 n) O(nlog2n)。
相關文章
- 資料結構-二分搜尋樹資料結構
- Gym_102452I Incoming Asteroids(資料結構)AST資料結構
- 資料結構之PHP二分搜尋樹資料結構PHP
- 【資料結構】折半查詢(二分查詢)資料結構
- 資料結構與演算法-二分查詢資料結構演算法
- 【資料結構與演算法】—— 二分查詢資料結構演算法
- [資料結構] 二分查詢 (四種寫法)資料結構
- 資料結構作業的一系列答案資料結構
- 資料結構與演算法整理總結---二分查詢資料結構演算法
- 二分答案法
- 【資料結構與演算法】二分鐘初識樹資料結構演算法
- 演算法與資料結構之二分搜尋樹演算法資料結構
- 資料結構和演算法之——二分查詢上資料結構演算法
- 資料結構和演算法之——二分查詢下資料結構演算法
- 6-1 二分查詢 (20分) PTA 資料結構資料結構
- javascript資料結構之二分查詢簡單介紹JavaScript資料結構
- 演算法與資料結構——二分查詢插入點演算法資料結構
- c++ 二分答案C++
- 資料結構演算法-go 實現二分法資料結構演算法Go
- 資料結構與演算法——二分查詢演算法資料結構演算法
- 結構化資料、半結構化資料和非結構化資料
- 【資料結構篇】認識資料結構資料結構
- 前端學習資料結構1 二分排序樹(BST)前端資料結構排序
- 二分答案解題技巧
- 資料結構小白系列之資料結構概述資料結構
- 看得見的資料結構Android版之二分搜尋樹篇資料結構Android
- 資料結構?資料結構
- 資料結構資料結構
- 10 道資料結構演算法題,不看答案你會幾道題資料結構演算法
- 微軟等資料結構+演算法面試100題全部答案集錦微軟資料結構演算法面試
- 程式碼面試需要知道的8種資料結構(附面試題及答案連結)資料結構面試題
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 重學資料結構和演算法(三)之遞迴、二分、字串匹配資料結構演算法遞迴字串匹配
- 【PHP資料結構】PHP資料結構及演算法總結PHP資料結構演算法
- 資料結構-棧資料結構
- 資料結構-堆資料結構
- 資料結構-集合資料結構
- 資料結構 - 字串資料結構字串