time limit: 1000 ms memory limit: 65536 kib
submit
statistic
discuss
problem description
有乙個資料字典,裡面存有n個數字(n<=100000),小明現在接到乙個任務,這項任務看起來非常簡單——給定m個數字,分別查詢這m個數字是否出現在字典之中;但是考慮到資料量的問題,小明找到了善於程式設計的你,希望你可以幫他解決這個問題。
input
輸入資料只有一組!
第一行包含兩個整數n m,分別代表字典中數字的個數和要查詢的數字的個數。
接著n行代表字典中的n個數字。
最後m表示要查詢的數字。
output
如果某個數字存在,則輸出yes,否則輸出no
sample input
5 312
3455
410
sample output
yes
yesno
hint
source
趙利強注意:超時了很多次,最開始的**非常粗暴,開了乙個100000的陣列,代表的是每乙個輸入的數字,凡是出現了便在這個陣列中對其值加1,定義乙個flag變數,凡是出現了這個數便將flag設為1,設為1,再輸出yes即可。
貼上超時的**:
#include using namespace std;
void find_n(int a,int n,int key)
; for(int i=0;i>n>>m;
for(int i=0;i>a[i];
}for(int j=0;j>key;
find_n(a,n,key);
}return 0;
}
能過的**:
#include using namespace std;
int flag[100000]=;
void find_n(int a,int n,int key)
for(int j=0;j>key;
find_n(a,n,key);
}return 0;
}
相當於直接減少一次遍歷吧 sdut2123查詢練習 hash 出現過的數字
題目 有乙個資料字典,裡面存有n個數字 n 100000 小明現在接到乙個任務,這項任務看起來非常簡單 給定m個數字,分別查詢這m個數字是否出現在字典之中 但是考慮到資料量的問題,小明找到了善於程式設計的你,希望你可以幫他解決這個問題。輸入資料只有一組!第一行包含兩個整數n m,分別代表字典中數字的...
查詢練習 hash 出現過的數字
有乙個資料字典,裡面存有n個數字 n 100000 小明現在接到乙個任務,這項任務看起來非常簡單 給定m個數字,分別查詢這m個數字是否出現在字典之中 但是考慮到資料量的問題,小明找到了善於程式設計的你,希望你可以幫他解決這個問題。輸入資料只有一組!第一行包含兩個整數n m,分別代表字典中數字的個數和...
查詢練習 hash 出現過的數字
查詢練習 hash 出現過的數字 time limit 1000ms memory limit 65536k 有疑問?點這裡 題目描述 有乙個資料字典,裡面存有n個數字 n 100000 小明現在接到乙個任務,這項任務看起來非常簡單 給定m個數字,分別查詢這m個數字是否出現在字典之中 但是考慮到資料...