統計難題(字典樹模板)

2022-07-30 18:24:18 字數 1436 閱讀 4798

個人心得:先來了解下字典樹的概念吧。

trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:最大限度地減少無謂的字串比較,查詢效率比雜湊表高。

trie的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的開銷以達到提高效率的目的。

它有3個基本性質:

1,根節點不包含字元,除根節點外每乙個節點都只包含乙個字元。

2,從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串。

3,每個節點的所有子節點包含的字元都不相同

用自己的理解是就是根據字首建立字典樹,如果輸入的字串存在相同字首那麼此時這個數節點sum加一,否則建立新的子樹,查詢的時候

直接找到底的節點,輸出節點資料就好了。

題目:ignatius最近遇到乙個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),現在老師要他統計出以某個字串為字首的單詞數量(單詞本身也是自己的字首). 

input輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行代表單詞表的結束.第二部分是一連串的提問,每行乙個提問,每個提問都是乙個字串. 

注意:本題只有一組測試資料,處理到檔案結束. 

output對於每個提問,給出以該字串為字首的單詞的數量. 

sample input

banana

band

beeabsolute

acmba

bband

abc

sample output

231

0

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8#define inf 1<<29

9#define nu 4000005

10#define maxnum 200005

11#define num 26

12int

n;13 typedef structt14

tirelode,*tire;

1819

tirelode tire;

20void createtire(char *str)

2134

else

3539}40

}41int findtire(char *str)

4252

return p->sum;53}

54int

main()

5566

return0;

67 }

統計難題(字典樹模板)

題目描述 ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 輸入描述 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,...

統計難題(字典樹模板題)

ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 這個題意還是很好理解的,輸入方面稍微有一點點坑,但是習慣就好 判斷讀入的是不是一串空得字串,可以用gets 函式去實現,可以通過讀入的字...

統計難題(字典樹)

description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignati...