永恆和mx正在玩乙個即時戰略遊戲,名字嘛~~~~~~恕本人記性不好,忘了-_-b。mx在他的基地附近建立了n個戰壕,每個戰壕都是乙個獨立的作戰單位,射程可以達到無限(「mx不贏定了?!?」永恆fting...@_@)。
但是,戰壕有乙個弱點,就是只能攻擊它的左下方,說白了就是橫縱座標都不大於它的點(mx:「我的戰壕為什麼這麼菜」tot)。這樣,永恆就可以從別的地方進攻摧毀戰壕,從而消滅mx的部隊。
戰壕都有乙個保護範圍,同它的攻擊範圍一樣,它可以保護處在它左下方的戰壕。所有處於它保護範圍的戰壕都叫做它的保護物件。這樣,永恆就必須找到mx的戰壕中保護物件最多的點,從而優先消滅它。
現在,由於永恆沒有時間來計算,所以拜託你來完成這個任務:
給出這n個戰壕的座標xi、yi,要你求出保護物件個數為0,1,2……n-1的戰壕的個數。
第一行,乙個正整數n(1<=n<=15000)
接下來n行,每行兩個數xi,yi,代表第i個點的座標
(1<=xi,yi<=32000)
注意:可能包含多重戰壕的情況(即有數個點在同一座標)
輸出n行,分別代表保護物件為0,1,2……n-1的戰壕的個數。
5
1 15 1
7 13 3
5 5
121
10
題目大意:給定一些點,求橫縱座標小於等於每個點的個數(自己不算)。一維的話,就是直接排一下序然後lower_bound一發就行了。。。
二維的話似乎要用到二維資料結構來維護左下角的個數?
由於這道題是靜態的,所以對於某一維排一下序,然後對於另一維插入到樹狀陣列裡並詢問字首和就行了。
在這裡用x -> y順序排序比較方便。。。
不過注意如果x相同的時候y越小越靠前。。。不然的話某一些點是統計不上的。。。
擴充套件到三維的話好像是一維排序、一維樹狀陣列、一維cdq分治?(可能我記錯了。。。)
Vijos 弱弱的戰壕
永恆和mx正在玩乙個即時戰略遊戲,名字嘛 恕本人記性不好,忘了 b。mx在他的基地附近建立了n個戰壕,每個戰壕都是乙個獨立的作戰單位,射程可以達到無限 mx不贏定了?永恆fting.但是,戰壕有乙個弱點,就是只能攻擊它的左下方,說白了就是橫縱座標都不大於它的點 mx 我的戰壕為什麼這麼菜 tot 這...
弱弱的戰壕
描述 永恆和mx正在玩乙個即時戰略遊戲,名字嘛 恕本人記性不好,忘了 b。mx在他的基地附近建立了n個戰壕,每個戰壕都是乙個獨立的作戰單位,射程可以達到無限 mx不贏定了?永恆fting.但是,戰壕有乙個弱點,就是只能攻擊它的左下方,說白了就是橫縱座標都不大於它的點 mx 我的戰壕為什麼這麼菜 to...
樹狀陣列訓練題1 弱弱的戰壕(vijos1066)
這道題似乎是vijos上能找到的最簡單的樹狀陣列題了。原來,我有乙個錯誤的思想,我的設計是維護兩個樹狀陣列,乙個是橫座標,乙個是縱座標,然後讀入每個點的座標,扔進對應的樹狀陣列內,然後計算時,只要以當前點的座標為末點求字首和,在兩個字首和中取最小的乙個即可。但是這個想法很明顯有錯誤比如如圖的狀況 此...