nyoj138 找球號 二) hash表 二分

2021-07-31 08:42:24 字數 1047 閱讀 7795

描述 在某一國度裡流行著一種遊戲。遊戲規則為:現有一堆球中,每個球上都有乙個整數編號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 ...