51nod 1571 最近等對 CQD分治

2021-09-27 04:36:41 字數 661 閱讀 2713

現在有乙個序列 a1, a2, ..., ana1, a2, ..., an ,還有m個查詢 lj, rj (1 ≤ lj ≤ rj ≤ n)lj, rj (1 ≤ lj ≤ rj ≤ n) 。對於每乙個查詢,請找出距離最近的兩個元素 axax 和 ay (x ≠ y)ay (x ≠ y) ,並且滿足以下條件:

lj ≤ x, y ≤ rj;lj ≤ x, y ≤ rj; 

ax = ay。ax = ay。 

兩個數字的距離是他們下標之差的絕對值 |x − y||x − y| 。

收起

單組測試資料。

第一行有兩個整數n, m (1≤n,m≤5*10^5),表示序列的長度和查詢的次數。

第二行有n個整數a1,a2,...,an (-10^9≤ai≤10^9)。

接下來有m行,每一行給出兩個整數lj,rj (1≤lj≤rj≤n)表示乙個查詢。

對於每乙個查詢,輸出最近的距離,如果沒有相等的元素,輸出-1。
樣例輸入1

5 31 1 2 3 2

1 52 4

3 5

樣例輸出11-1

2

題解:把距離最近的每對數同樣記錄下來[l ,  r],先對 r 排序,小的在前,然後在按 l 排序,大的在前,再按操作排序,這樣對於右邊的查詢,左邊的更新,要加上讀入優化啊。。。

51nod 1571 最近等對 線段樹 離線

現在有乙個序列 a1,a2,an 還有m個查詢 lj,rj 1 lj rj n 對於每乙個查詢,請找出距離最近的兩個元素 ax 和 ay x y 並且滿足以下條件 lj x,y rj ax ay。兩個數字的距離是他們下標之差的絕對值 x y 單組測試資料。第一行有兩個整數n,m 1 n,m 5 10...

51Nod1779 逆序對統計

lyk最近計畫按順序做n道題目,每道題目都分為很多分數檔次,lyk覺得這些題太簡單了,於是它想到了乙個好玩的遊戲。lyk決定將每道題目做出其中的某個分數,使得這n道題目的逆序對個數最多。為了方便,假設共有m個分數檔次,並且會給m個分數檔次分配乙個題目編號,表示該題目會出現這個分數檔次。題目保證每道題...

51NOD1779 逆序對統計

lyk最近計畫按順序做n道題目,每道題目都分為很多分數檔次,lyk覺得這些題太簡單了,於是它想到了乙個好玩的遊戲。lyk決定將每道題目做出其中的某個分數,使得這n道題目的逆序對個數最多。為了方便,假設共有m個分數檔次,並且會給m個分數檔次分配乙個題目編號,表示該題目會出現這個分數檔次。題目保證每道題...