救救兔子
時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 262144k,其他語言524288k
64bit io format: %lld
某天,乙隻可愛的小兔砸在路上蹦蹦跳跳地走著,怪人pm6出現了,於是小兔子被盯上了。
pm6:「免子。哦不,小兔子。你長得真好…不對,真可愛。我這裡有一道很容易很容易的題目,答對了我就請你吃蘿蔔,答錯了你就請我吃兔肉,好不好呀~~?」
小兔砸:「蘿蔔!?好呀好呀好呀。」於是笨笨的兔紙入套了。
pm6:「我這裡有乙個由 n 個數組成的序列,給你 m 個詢問,每個詢問會給你乙個數 x ,對於每個詢問,你要回答出序列中與這個值最接近的元素。」
聽完題後,兔子嚇成一坨免子了,面臨著變成紅燒兔頭的危險,求求你救救兔子!
第一行包含乙個整數n,為序列長度。
第二行包含n個整數,為序列各元素。
第三行包含乙個整數m,為pm6的詢問個數。
接下來m行,每行乙個整數x,為要詢問最接近元素的給定值。
對於40%的資料:1<=n<=10000,1<=m<=1000
對於另外10%的資料:m=1
對於100%的資料:1 <=n<= 100000,1<=m<=10000,0<=序列中的每個數,x<=1e9
m行,每行有乙個整數,為最接近相應給定值的元素值,保持輸入順序。若有多個值滿足條件,輸出最小的乙個。
示例1
複製
5
2 4 5 5 732
56
複製
2
55
思路很簡單就是,用lower_bound ()函式找到比key值大的第乙個元素,還要判斷和比key值小的那個數的差值判斷大小,但是當這個值為0 或者n 是沒有可以判斷的所以直接輸出就行
lower_bound()函式,就是返回比key值大的第乙個元素的位置
對應lower_bound()函式是upper_bound()函式,它返回比key值大的最後乙個元素的位置
#include#includeusing namespace std;
int a[100005];
int main()
} return 0;
}
救救兔子(二分)
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 某天,乙隻可愛的小兔砸在路上蹦蹦跳跳地走著,怪人pm6出現了,於是小兔子被盯上了。pm6 免子。哦不,小兔子。你長得真好 不對,真可愛。我這裡有一道很容易很容易的題...
救救兔子(二分)
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 某天,乙隻可愛的小兔砸在路上蹦蹦跳跳地走著,怪人pm6出現了,於是小兔子被盯上了。pm6 免子。哦不,小兔子。你長得真好 不對,真可愛。我這裡有一道很容易很容易的題...
牛客OI周賽7 普及組 救救兔子(二分查詢 快排)
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 某天,乙隻可愛的小兔砸在路上蹦蹦跳跳地走著,怪人pm6出現了,於是小兔子被盯上了。pm6 免子。哦不,小兔子。你長得真好 不對,真可愛。我這裡有一道很容易很容易的題...