二分 查詢最接近的元素

2021-10-11 20:50:47 字數 880 閱讀 3767

題目鏈結

在乙個非降序列中,查詢與給定值最接近的元素。

第一行包含乙個整數n,為非降序列長度。1 <= n <= 100000。

第二行包含n個整數,為非降序列各元素。所有元素的大小均在0-1,000,000,000之間。

第三行包含乙個整數m,為要詢問的給定值個數。1 <= m <= 10000。

接下來m行,每行乙個整數,為要詢問最接近元素的給定值。所有給定值的大小均在0-1,000,000,000之間。

m行,每行乙個整數,為最接近相應給定值的元素值,保持輸入順序。若有多個值滿足條件,輸出最小的乙個。

32 5 8210

585二分的入門題,注意邊界處理就行了

#include

#include

#include

#include

using

namespace std;

const

int maxn=

1e5+5;

intmain()

cin>

>m;

while

(m--)if

(x>=a[n]

)int l=

1,r=n;

while

(l<=r)

else

if(a[mid]

else

if(l==r-

1&&a[l]

>x)

break;}

if(abs(a[l]

-x)<=

abs(a[r]

-x))

cout<

<

else

cout<

<

}}

NOI 01 查詢最接近的元素 基本二分

總時間限制 1000ms 記憶體限制 65536kb 描述在乙個非降序列中,查詢與給定值最接近的元素。輸入第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數...

查詢最接近的元素

總時間限制 1000ms 記憶體限制 65536kb 描述在乙個非降序列中,查詢與給定值最接近的元素。輸入第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數...

查詢最接近的元素

在乙個非降序列中,查詢與給定值最接近的元素。input 第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數。1 m 10000。接下來m行,每行乙個整數,為...