原文:KI子線段樹 / AKEE SegmentTree

背景 你 Ki 叔 最近 CF 虐場的同時發明了一種趣味的東西,適用於區間修改查詢問題,但合並兩個區間的貢獻復雜度需要與區間長度有關的問題,這種問題無法用普通線段樹去維護,因為復雜度爆炸,過去一般會使用分塊維護,需要討論散塊 整塊等問題,較為復雜,而神仙大 Ki 子研究出了一種新的方式,代碼好寫,想法基於在線段樹上對節點大小進行根號分治。 理論 理論具體來說: 設立一個閾值 B 修改的時候,對於線 ...

2021-07-01 00:28 0 329 推薦指數:

查看詳情

java——線段 SegmentTree

應用:   區間染色   區間查詢 線段不是完全二叉樹,線段是平衡二叉樹 使用數組來實現線段:存儲空間為4n 以下是使用數組實現的靜態線段: 對於一個區間的更新:   懶惰更新:使用lazy數組記錄未更新的內容,下一次訪問時先訪問lazy數組,若有內容,更新后 ...

Wed Oct 31 17:56:00 CST 2018 0 759
線段

總原理: 將[1,n]分解成若干特定的子區間(數量不超過4*n) 用線段對“編號連續”的一些點,進行修改或者統計操作,修改和統計的復雜度都是O(log2(n)) 用線段統計的東西,必須符合區間加法,(也就是說,如果已知左右兩子樹的全部信息,比如要能夠推出父節點);否則,不可能通過分 ...

Sat May 19 08:43:00 CST 2018 4 11559
線段(區間

目錄 為什么要使用線段? 什么是線段? 創建一棵線段 線段的查詢操作 線段的更新操作 為什么要使用線段? 最經典的線段問題:區間染色   有一面牆 ,長度為n,每次選擇一段兒牆進行染色,m次操作后 ...

Sun Apr 12 16:18:00 CST 2020 0 907
【BZOJ5210】最大連通塊和 線段+動態DP

【BZOJ5210】最大連通塊和 Description 給出一棵n個點、以1為根的有根,點有點權。要求支持如下兩種操作: M x y:將點x的點權改為y; Q x:求以x為根的子樹的最大連通塊 ...

Sat Mar 24 02:53:00 CST 2018 0 1210
權值線段&線段合並

更新地址:傳送門 --- 權值線段 所謂權值線段,就是一種維護值而非下標的線段,我個人傾向於稱呼它為值域線段。 舉個栗子:對於一個給定的數組,普通線段可以維護某個子數組中數的和,而權值線段可以維護某個區間內數組元素出現的次數。 在實現上,由於值域范圍通常較大,權值線段 ...

Wed Oct 24 05:54:00 CST 2018 0 1607
[線段系列] 線段合並

這一篇來講講線段合並。 前置知識:動態開點線段 還是一樣先給一道例題:[JOI2012] Building2 題面是日文的,這里給出中文翻譯: 有n">n">n個城市,它們組成了一棵。 第i">i個城市有一座高度為Hi">Hi的建築。 n">n">i">Hi">你需要選擇一條盡量長 ...

Wed Oct 30 00:59:00 CST 2019 0 293
值域線段and動態開線段

值域線段每一個節點代表一個值,其他沒什么區別 動態開就是節省了沒有用到節點,其中重要一點的是不需要節點是連續的(即id值是任意的,只要可以找到即可) 例題 Bzoj 4627 回轉壽司 題意 給n個數問區間和在L<=sum【r】-sum【l-1】<=R區間 ...

Wed Nov 15 05:14:00 CST 2017 6 816
線段合並 總結

今天學習了一下動態開點的線段以及線段合並吧 理解應該還是比較好理解的,動態開點的話可以避免許多空間的浪費,因為這類問題我們一般建立的是權值線段,而權值一般范圍比較大,直接像原來那樣開四倍空間的話空間復雜度不能承受。 動態開點的代碼如下: 因為對應位置的結點所代表 ...

Wed Apr 17 06:36:00 CST 2019 0 599
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM