【给自己的小练习2-线段树】
https://vjudge.net/contest/161102
?
HDU - 2795
題意:模擬一個過程,有n行,每行初始長m,每次選擇最靠前的長度超過ai的行減去ai,輸出每次選中哪些行。
線段樹維護區間最大值,然后再線段樹上二分找第一個長度超過ai的點,單點修改。
?
POJ - 2828
題意:每次在第ai后加入一個數bi,求最終的數組狀態
維護序列的題,顯然可以用splay,然后這題會卡splay,所以用線段樹模擬這個過程,首先,如果是倒序處理的,那在第ai插入相當于在當前第ai個空插入,所以還是在線段樹上二分找這個空。
?
HDU - 1698
區間修改
打lazy
?
POJ - 3468
區間修改區間查詢
?
POJ - 2528
題意:按照順序給n個區間,問可以看到幾個區間
這題我當時不會,現在再回想還是不會……
然而居然……就是在做完線段樹后,遍歷一遍線段樹!然后就可以統計了!所以對于線段樹,并不是所有算法都是在線噠,處理好再遍歷一遍這種想法要記住啊!
?
POJ - 3667
支持兩種操作:1)找一個連續的大于k的區間,并占用它。2)釋放掉一個指定區間。
線段樹維護區間連續性,打lazy,記錄lmax,rmax,mmax,依然是線段樹上二分找這個區間
?
HDU - 1828
矩形周長并。
寫法就是每次加入或減少一條線段的時候記錄一下改變量,不過要記住就是先+線段再減線段。
轉載于:https://www.cnblogs.com/Macaulish/p/6896098.html
總結
以上是生活随笔為你收集整理的【给自己的小练习2-线段树】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux基础(一)
- 下一篇: 【数据结构】 线性表的顺序表