4189 字典時間限制: 1 s
空間限制: 256000 kb
題目等級 : 大師 master
傳送門題目描述 description
最經,skyzhong得到了一本好厲害的字典,這個字典裡整整有n個單詞(1<=n<=200000)
現在skyzhong需要在字典裡查詢以某一段字母開頭的單詞
如:skyzhong想查詢a
那麼只要是a開頭的單詞就可以了
skyzhong只想知道裡面有沒有這乙個單詞(因為沒有他就不查了)
若有,請輸出yes。若沒有,請輸出no
輸入描述 input description
第一行乙個數n
第二行到第n+1行,一行乙個字串
再下一行乙個數m,表示skyzhong想要查詢的次數
接著m行,一行乙個字串,表示skyzhong想要查的東西
輸出描述 output description
共m行,若有這字串輸出yes,否則輸出no
樣例輸入 sample input
3 asd
asfdghj
asfd
3 asd
asdghj
asf
樣例輸出 sample output
yes
no yes
資料範圍及提示 data size & hint
字串只有小寫字母,且長度≤8
/*
字典樹模板(字首查詢).
查詢某個單詞的字首是否出現過
因為當查詢如字串abc是否為某個字串的字首時,
顯然以b、c、d....等不是以a開頭的字串就不用查詢了,
這樣迅速縮小查詢的範圍和提高查詢的針對性。
所以建立trie的複雜度為o(n*len),
而建立+查詢在trie中是可以同時執行的,
建立的過程也就可以成為查詢的過程,
hash就不能實現這個功能.
所以總的複雜度為o(n*len),
實際查詢的複雜度只是o(len).
*/#include
#include
#include
#define maxn 300001
#define maxm 1001
using
namespace
std;
char s[maxm];
struct data
tree[maxn];
int m,n,tot;
void add_vertex() }
tree[now].b=true;
}int find()
return0;}
return1;}
int main()
cin>>m;
memset(s,0,sizeof(s));
for(int i=1;i<=m;i++)
AC日記 字典 codevs 4189
時間限制 1 s 空間限制 256000 kb 題目等級 大師 master 題解檢視執行結果 最經,skyzhong得到了一本好厲害的字典,這個字典裡整整有n個單詞 1 n 200000 現在skyzhong需要在字典裡查詢以某一段字母開頭的單詞 如 skyzhong想查詢a 那麼只要是a開頭的單...
字典樹 與 01字典樹
字典樹可以降低空間複雜度 01字典樹可以降低時間複雜度。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較...
字典樹實現 10 字典樹
字典樹就是一種樹形結構,優點是利用字串的公共字首來節約儲存空間,比如加入 abc abcd abd b bcd efg hik 構造出的字典樹如下 基本特徵 下面我們先實現乙個字典樹,假設所有單詞的字元僅僅是 a z 幷包含以下功能 void insert string word 新增word,可以...