HDU 1251 統計難題(字典樹)

2022-06-01 01:42:12 字數 707 閱讀 7523

//題意:給你多個字串為一組,然後空一行後輸入詢問的字串,你要輸出以該字串為字首的字串數目。

//思路:如果要一一匹配真的是,不知道什麼時候去了...所以使用字典樹。這裡使用陣列去模擬。

#include #include 

using

namespace

std;

int trie[1000010][26]; //

陣列形式定義字典樹,值儲存的是下乙個字元的位置

int num[1000010]=; //

附加值,以某一字串為字首的單詞的數量

int pos = 1

;void insert(char *word)

p = trie[p][n];//

從trie樹中得到指向下乙個方向的位置

num[p]++;//

p結點位置加一}}

int find(char *word)

p = trie[c][n];//

如果沒有出現這個字首則輸出為0

}

return

num[p];

}int

main()

while

(gets(word))

printf(

"%d\n

",find(word));

return0;

}

HDU 1251統計難題(字典樹)

經典的字典樹題目。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。ac code ...

HDU1251統計難題 字典樹

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

hdu 1251 統計難題 字典樹

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