a175. 撒旦玩不玩骰子?
Tags : Hash Table
Accepted rate : 124人/151人 ( 82% ) [非即時]
評分方式:
Tolerant

最近更新 : 2011-07-08 20:56

Content

雜湊表Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行查詢的資料結構。也就是說,它通過把關鍵碼值映射到表中一個位置來查詢記錄,以加快查找的速度。這個映射函數叫做雜湊函數,存放記錄的數組叫做雜湊表

以上資料引用自維基百科

現在想請你模擬出一個簡單的 Hash Table

把所有數字經由 mod m 分成 m 個區間

每次給你一個數字 N 

有三個操作依下列所示

操作 1: 將數字 N mod m 存入 Hash Table

操作 2: 將數字 N 從 Hash Table 中釋放(刪除)

操作 3: 將整個 Hash Table 輸出

Input

有多筆測資,每組第一行有兩個數字 k, m (1 ≦ k ≦ 10,0000, 1 ≦ m ≦ 200)

分別代表接下來有 k 筆操作, 模數 m

接下來的每一行

若第一個數字為 1, 則接下來會一個數字 N,將這個數字插入 Hash Table

若第一個數字為 2, 則接下來會一個數字 N,將這個數字從 Hash Table 刪除

若第一個數字為 3, 則輸出整個 Hash Table

0 ≦ N < 231-1 

Output
若有兩個以上的數字在同一個區間內
輸出時請由小到大輸出

其餘輸出格式請參照範例輸出
Sample Input #1
13 5
1 17
1 8
3
3
1 18
1 24
3
1 37
1 64
1 84
3
2 18
3
Sample Output #1
===== s =====
[000]:NULL
[001]:NULL
[002]:17 -> NULL
[003]:8 -> NULL
[004]:NULL
===== e =====
===== s =====
[000]:NULL
[001]:NULL
[002]:17 -> NULL
[003]:8 -> NULL
[004]:NULL
===== e =====
===== s =====
[000]:NULL
[001]:NULL
[002]:17 -> NULL
[003]:8 -> 18 -> NULL
[004]:24 -> NULL
===== e =====
===== s =====
[000]:NULL
[001]:NULL
[002]:17 -> 37 -> NULL
[003]:8 -> 18 -> NULL
[004]:24 -> 64 -> 84 -> NULL
===== e =====
===== s =====
[000]:NULL
[001]:NULL
[002]:17 -> 37 -> NULL
[003]:8 -> NULL
[004]:24 -> 64 -> 84 -> NULL
===== e =====
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (20%): 1.0s , <1M
公開 測資點#1 (20%): 1.0s , <1M
公開 測資點#2 (10%): 1.0s , <1M
公開 測資點#3 (10%): 1.0s , <1M
公開 測資點#4 (10%): 1.0s , <1M
公開 測資點#5 (10%): 2.0s , <10M
公開 測資點#6 (10%): 2.0s , <10M
公開 測資點#7 (10%): 2.0s , <10M
Hint :

× 若在存入時,發現數字重複,則不予理會
× 若在刪除時,發現數字不存在,則不予理會
× 循序不可
× 此題與 a174: 上帝玩不玩骰子 略有不同

題目由 example 編輯

Tags:
Hash Table
出處:
[管理者: morris1028 (碼畜) ]

Status Forum 排行

ID User Problem Subject Hit Post Date
13493 054025 (東翰) a175
1279 2018-02-28 22:58