鄰值查詢CH1301(平衡樹)

2021-10-24 20:13:46 字數 717 閱讀 7246

給定乙個長度為 n 的序列 a,a 中的數各不相同。對於 a 中的每乙個數 a i ,求:m i n ( 1 ≤ j < i ) ⁡ ∣ a i − a j ∣,以及令上式取到最小值的 j(記為 p i )。若最小值點不唯一,則選擇使 a j 較小的那個。

資料範圍:n<=105 ,|ai|<=109

題解:可以借助set來實現,set的查詢是o(log n)的,最終的時間複雜度大約為o(n log n)

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int u=

100010

;int h[u]

, g[3]

, n, m, p;

struct rec

;set s;

set::iterator it,lt,rt;

bool

operator

<

(rec a,rec b)

bool

cmp(

int a,

int b,

int i)

intmain()

}return0;

}

CH1301 鄰值查詢

給定乙個長度為 n 的序列 a,a 中的數各不相同。對於 a 中的每乙個數 a ia i ai 求 m in 1 j ai aj min 1 jmi n 1 j ai aj 以及令上式取到最小值的 j 記為 p ip i pi 若最小值點不唯一,則選擇使 a ja j aj 較小的那個。題解 可以借...

C rimer 學習筆記 ch13 複製控制

第十三章 複製控制 1.複製建構函式具有單個形參,該形參 常用const修飾 是對該類型別的引用,當定義乙個新物件並用乙個同型別的物件對它進行初始化時,將顯式使用複製建構函式,當將該型別的物件傳遞給函式或從函式返回該型別的物件時,將隱式使用複製建構函式 2.不管類是否定義了自己的析構函式,編譯器都自...

演算法競賽高階指南 CH1301鄰值查詢(set)

題目描述 給定乙個長度為 n 的序列 a,a 中的數各不相同。對於 a 中的每乙個數 ai,求 min1 j輸入格式 第一行輸入整數n,代表序列長度。第二行輸入n個整數a1 an,代表序列的具體數值,數值之間用空格隔開。輸出格式 輸出共n 1行,每行輸出兩個整數,數值之間用空格隔開。分別表示當i取2...