題意:給出許多個字串;然後接下來再給出詢問:
每乙個詢問都是乙個字串,問以這個字串為字首的單詞有多少個;
這是字典樹典型例題;
我們將題意給出的字串建字典樹,在建的時候,在每個節點位置都sum【x】++;
詢問的時候:用單詞跑一遍字典樹,在跑到最後乙個單詞的節點的時候,返回此節點的sum即可
1 #include2using
namespace
std;
3const
int maxx = 400001;4
char s[11];5
int trie[maxx][26
],sum[maxx];
6int
tot;
7void
insert()816
}17intsearch()
18 //
rt經過此迴圈後變成字首最後乙個字母所在位置
25return sum[rt]; //
返回當前字串結尾節點的訪問次數,也就是作為字首的出現次數26}
27int
main()
28
hdu 1251 字典樹入門
ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行...
HDU1251字典樹模板
problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...
HDU 1251 字典樹 入門
ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行...