線段樹入門 POJ 2182 Lots Cows

2021-05-11 12:58:16 字數 437 閱讀 5496

看別人的思路:

從後往前推,排在最後一頭牛比他編號小的數量有x頭牛,那麼最後一頭牛的編號必然為x+1。

按照這種思路下去,我們把1-n編號的牛排成一排。把x+1這頭牛從裡面刪除。

假如倒數第二頭牛在他前面比他編號小的數量有y頭牛,那麼就在這1-n刪掉了求出來的牛後剩下的第y+1頭牛。

方法一:直接搜尋(n*n)

p[i]表示第i個應該放的cow的id。

f[i]=0表示此牛還未被刪除,f[i]=1表示此牛已經被刪除。

方法二:線段樹(n*lgn)

搜尋排在第n位的數是幾時可用線段樹實現,對於乙個線段樹中的所代表的線段[a,b],結點中的數值紀錄[a,b]中還有多少人沒有被去掉,記為len,所以對於乙個在剩餘數字佇列中排在第n位,看這個人是在乙個結點的左子樹中還是右子樹中。

poj 2182 線段樹 樹狀陣列

題目大意 n個數排成一排 不知道大小,只是佔了乙個位置 從a 1 到a n 進行遍歷,對於每個a i 給出從a 1 到a i 1 中小於a i 數的個數。要求出 a 1 到a n 中這n個數的相對順序。題目分析 則 a i 在所有n個數中的序號 按照從小到大排序 為 k less i t 1 但是,...

線段樹入門(poj 3274 3468 2528)

概念 在一類問題中,我們需要經常處理可以對映在乙個座標軸上的一些固定線段,例如說對映在ox軸上的線段。由於線段是可以互相覆蓋的,有時需要動態地取線段的並,例如取得並區間的總長度,或者並區間的個數等等。乙個線段是對應於乙個區間的,因此線段樹也可以叫做區間樹。線段樹常用於區間多次插入查詢,經常改變資料。...

線段樹入門

線段樹 interval tree 是把區間逐次二分得到的一樹狀結構,它反映了包括歸併排序在內的很多分治演算法的問題求解方式。上圖是一棵典型的線段樹,它對區間 1,10 進行分割,直到單個點。這棵樹的特點 是 1.每一層都是區間 a,b 的乙個劃分,記 l b a 2.一共有log2l層 3.給定乙...