題目鏈結
在乙個非降序列中,查詢與給定值最接近的元素。
第一行包含乙個整數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行,每行乙個整數,為...