其實你應該在百度上搜索“吉司機線段樹”
區間取最值、區間求和問題
考慮這樣一種做法:線段樹維護區間的最大值、次大值、最大值個數,在詢問值≥最大值時直接退出,詢問值\(\in(max2,max)\)時更新信息並打標記,詢問值≤次大值時遞歸左右兒子區間。
由於取最值操作時不同數字種數減少,而遞歸操作的次數是與數字種數有關的,可證明沒有區間加減操作時復雜度為\(O(n\log n)\),有加減操作時復雜度為\(O(n\log n^2)\)。
其實你應該在百度上搜索“吉司機線段樹”
考慮這樣一種做法:線段樹維護區間的最大值、次大值、最大值個數,在詢問值≥最大值時直接退出,詢問值\(\in(max2,max)\)時更新信息並打標記,詢問值≤次大值時遞歸左右兒子區間。
由於取最值操作時不同數字種數減少,而遞歸操作的次數是與數字種數有關的,可證明沒有區間加減操作時復雜度為\(O(n\log n)\),有加減操作時復雜度為\(O(n\log n^2)\)。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。