源每一22 不是線段樹

2022-08-21 14:03:09 字數 539 閱讀 3313

題目翻譯:看北大課件去就是很簡單的求面積並。怎麼求呢?優秀的方法總是有的:

自己畫的圖太醜了

很簡單的思路,把所有的矩形按照邊分成一塊一塊的。具體來講怎麼實現呢?

如圖所示:拿一條豎直的線(也就是藍線),從頭掃到尾,碰到了有邊的地方就算面積。這也就是傳說中的掃瞄線演算法。但是掃到的面積有大有小,怎麼計算呢?

乙個離散化的思路:把所有矩形的橫邊延長,變成乙個個小區間(也就是紅線);當藍線從左側開始掃,掃到有邊的地方討論,如果是矩形左邊的邊,就在這個邊所在的所有區間加1,如果是右邊的邊,就在矩形的右邊減一;加一減一的同時,計算當前區間乘以兩掃瞄線的長度,也就是當前區間的面積。加一減一很容易想到用線段樹去優化。

p.s.思路很簡單,寫法有點複雜:首先,要考慮邊怎麼存,區間怎麼存,然後要考慮怎麼在區間更新的同時算出面積。

更新:線段樹個雞兒啊,掃一遍不就完了/噴血 複雜度也不高

神仙部落格: 

不過也好 練練

線段樹解析(一)

一 線段樹的應用場景 1.用於解決區間問題,例如求某個區間的和 最大值 最小值。2.支援的操作有單點修改 區間修改 區間查詢。二 線段樹 線段樹的核心思想在於 1.線段樹的每個節點預先維護好所對應區間所需要的資訊。2.對於一次查詢,將詢問區間 l,r 拆分到線段樹對應的節點上,通過合併這些節點已經處...

線段樹模板一

線段樹練習題1 time limit 10000ms memory limit 65536k total submit 263 accepted 93 case time limit 1000ms description 桌子上零散地放著若干個盒子,桌子的後方是一堵牆。如右圖所示。現在從桌子的前方射...

線段樹學習 一

看到uestc的資料結構專題快要結束了,感覺自己真心浪費了好多時間,沒有像鑫航學姐那樣叮囑的一樣,緊緊的跟住訓練。所以下決心認認真真的開始學習下線段樹的知識,以前對於線段樹的學習都是一知半解的,就是說,我只知道線段樹是用來單點更新和區間查值的,其實,線段樹的功能遠遠不止這些。先來說下,線段樹是用來求...