CODE VS 1230 元素查詢 二分

2021-08-05 20:49:15 字數 743 閱讀 5520

題目傳送門

這是一篇無聊的水部落格,請各位大佬慎入qwq。

很顯然,這題只要是懂一點點基礎知識的小學生都會做的題目,但是我們的重點不在這道題上。

今天講課時講到了lower_bound和upper_bound函式,於是就去學了一發。

這兩個函式都包含在algorithm庫里,用法也是挺簡單的:lower_bound(st,ed,val)

st和ed表示起止位置,遵循前閉後開的區間原則,val表示要查詢的值。

然後就是用法:lower_bound返回的是區間內大於等於val的最小權值的位置,upper_bound返回的是區間內大於val的最小權值的位置,若不存在則返回ed。

回到這題,可以用上述函式暴力水過。

附上ac**:

#include #include using namespace std;

const int n=1000010;

int n,m,x,a[n],pos;

int main(void)

return 0;

}

然後就是我們最關心的常數問題了,手打乙個二分交上去,發現只比上面那個快了5ms……

哇,以後再也不用手打二分啦!(霧)總之,stl是個好東西……

p.s.如果是各種stl資料結構自帶的lower_bound和upper_bound的話,常數會比較大,慎用啊……

對於這題,如果是用set的lower_bound的話,時間是上面那個**的2倍……

CODEVS 1230 元素查詢

給出n個正整數,然後有m個詢問,每個詢問乙個整數,詢問該整數是否在n個正整數中出現過。第一行兩個整數 n 和m。第二行n個正整數 1 n 100000 第三行m個整數 1 m 100000 一共m行,若出現則輸出yes,否則輸出no 4 2 2 1 3 4 1 9yes no所有資料都不超過10 8...

CODEVS 1230 元素查詢 雜湊表

codevs 題目描述 description 給出n個正整數,然後有m個詢問,每個詢問乙個整數,詢問該整數是否在n個正整數中出現過。輸入描述 input description 第一行兩個整數 n 和m。第二行n個正整數 1 n 100000 第三行m個整數 1 m 100000 輸出描述 out...

Codevs 1230 元素查詢 手寫雜湊表

題目連線 說白了就是要我們自己手寫乙個雜湊表的資料結構來實現加入和查詢功能。map也能直接過 我第一次寫就是用map騙ac的 提一下個人理解的雜湊表的實現 以下說的是線性定址法 假設有誤還請各位大神不吝不吝賜教 用乙個陣列模擬雜湊表,函式f x 數字x在雜湊表 現的下標的最小可能值。一般f x x ...