描述 在某一國度裡流行著一種遊戲。遊戲規則為:現有一堆球中,每個球上都有乙個整數編號i(0<=i<=100000000),編號可重複,還有乙個空箱子,現在有兩種動作:一種是」add」,表示向空箱子裡放m(1<=m<=100)個球,另一種是」query」,表示說出m(1<=m<=100)個隨機整數ki(0<=ki<=100000100),分別判斷編號為ki 的球是否在這個空箱子中(存在為」yes」,否則為」no」),先答出者為勝。現在有乙個人想玩玩這個遊戲,但他又很懶。他希望你能幫助他取得勝利。
輸入 第一行有乙個整數n(1<=n<=10000);
隨後有n行;
每行可能出現如下的任意一種形式:
第一種:
乙個字串」add」,接著是乙個整數m,隨後有m個i;
第二種:
乙個字串」query」,接著是乙個整數m,隨後有m個ki;
輸出 輸出每次詢問的結果」yes」或」no」.
樣例輸入
2 add 5 34 343 54 6 2
query 4 34 54 33 66
樣例輸出
yes
yes
no no
一開始用stl裡面的set,超時了。後來才聽說要用雜湊表使用set容器果然超時了
然後使用trie樹 果然又超記憶體了
最後使用了hash表+二分 總算在記憶體不太大 時間不太長的情況下a了
#include
#include
#include
#include
using
namespace
std;
#define mod 10000
vector
hash[mod+10];
void inserthash(int x)
bool findhash(int x)
int main()
}else}}
return
0;}
nyoj 138 找球號 二)hash表
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在某一國度裡流行著一種遊戲。遊戲規則為 現有一堆球中,每個球上都有乙個整數編號i 0 i 100000000 編號可重複,還有乙個空箱子,現在有兩種動作 一種是 add 表示向空箱子裡放m 0 輸入 第一行有乙個整數n 0 輸出...
NYOJ 138找球號 hash表
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在某一國度裡流行著一種遊戲。遊戲規則為 現有一堆球中,每個球上都有乙個整數編號i 0 i 100000000 編號可重複,還有乙個空箱子,現在有兩種動作 一種是 add 表示向空箱子裡放m 0 輸入 第一行有乙個整數n 0 輸出...
NYOJ 138 找球號(二) 雜湊
這道題我最開始是用的map標記來寫的,但寫完後發現tle了,後來看別人的題解才知道是要用雜湊來做,就學了一下雜湊。但還是不太明白,為啥map標記會超時?這裡貼個用map寫的tle了的 include include include include using namespace std map m ...