★實驗任務
錄入 n 個學生的成績,並查詢。
★資料輸入
第一行輸入包括 n、m(1<=n<=50,000,1<=m<=100,000)兩個數字。
接下來 n 行,每行包含名字和成績,名字用字串表示,長度不超過 4.成績為不 超過 100 的非負整數,名字僅由小寫字母組成。
接下來 m 行,每行包括乙個名字。
★資料輸出
輸出 m 行,如果查詢的學生不存在,輸出」not,exist!」,否則輸出學生的成績。
解題思路:因為之前看到這題首先想的就是直接用stl中的map就可以實現(根本就沒想不能全ac),就沒有深入想怎麼用雜湊函式實現。之後就看了一下同學的評優**,我選擇了乙份感覺比較簡短的**,就是直接通過對字串不同位置進行ascii碼轉換的乙個雜湊函式。
**:
#include#include#include#includeusing namespace std;
int a[500001];
int main()
return 0;
}
其實通這題的雜湊函式仔細一想還是比較容易想出來的,但是因為圖方便我就沒有多加思考,也沒有深究map消耗時間等等的細節,以後還需要加以改正; 成績查詢 雜湊表
錄入 n 個學生的成績,並查詢。資料輸入 第一行輸入包括 n m 1 n 50,000,1 m 100,000 兩個數字。接下來 n 行,每行包含名字和成績,名字用字串表示,長度不超過 4.成績為不 超過 100 的非負整數,名字僅由小寫字母組成。接下來 m 行,每行包括乙個名字。資料輸出 輸出 m...
查詢 雜湊表查詢(雜湊表)
1 雜湊表查詢定義 雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。採用雜湊技術將記錄儲存在一塊連續的儲存空間中...
資料結構查詢 雜湊查詢(雜湊查詢)
通常我們查詢資料都是通過乙個乙個地比較來進行,有一種方法,要尋找的資料與其在資料集中的位置存在一種對應的關係,通過這種關係就能找到資料的位置。這個對應關係成為雜湊函式 雜湊函式 因此建立的表為雜湊表 雜湊表 雜湊查詢是關鍵字與在資料集中的位置一一對應,通過這種對應關係能快速地找到資料,雜湊查詢中雜湊...