這個也是乙個矩形面積並的問題,和1151幾乎一模一樣,不同的是,資料範圍有點不同:1151是100個矩形,每個矩形的座標是小數,而這個是1000個矩形,每個座標在50000以內。50000這個數看上去還可以,連離散化都不用(1151因為是小數所以還必須得離散化),理論上複雜度是2000*log50000,應該秒出,但是經試驗各種tle。後來迫不得已加了離散化,結果很快就過了。
最後發現是ask一步的時候,最糟糕時要遍歷整個線段樹,一下子就o(50000)了。事實證明應該用乙個成員來維護這個node代表的子樹的總長度是多少。像這種全域性性的問題,似乎都可以用乙個成員來維護,詢問的時候直接詢問端點就行了。隨改隨更新,不要存著到最後一塊問。
另外使用離散化真心能降不少複雜度,用了以後,最糟糕的那一步一下就由2000*50000變成2000*4000了。所以一下就過了。
POJ1389 掃瞄線 線段樹
一道經典的掃瞄線 線段樹求矩形面積並的題目 用線段樹維護y,記錄所有線段被覆蓋的次數和長度,掃瞄線維護x,把乙個長方形拆成兩個事件,左邊界作為 1,右邊界作為 1,即可利用線段樹進行維護。非離散化版本 include includeusing namespace std define lson k ...
ACM練級日誌 POJ 2155 1151
這些日誌僅供以後防止自己出現過去犯過的錯誤,起到乙個註記的作用。若其他的acmer覺得有用的話,本人也感到欣慰 最近一直在練線段樹,說說線段樹的 染色問題 和 計數問題 比如poj的2155,level 2的一道題,入門二維線段樹,這道題一開始被我當成了染色問題。本來想用每個node去記錄這一段是0...
ACM練級日誌 模板的使用
最近碰上的幾個題目使我開始注意到模板的使用是多麼的有力。先是上週的微軟比賽第二場 當然我被淘汰了 第一題上來就是一道網路流 當然ac演算法是找增廣路 我可是一點網路流不會,但是恰好手頭有網路流的標程,於是借來一用,修改輸入輸出,然後就騙了10分 然後是劃分樹這個破玩意,我要是比賽的時候肯定寫不明白那...