HDU 1251 統計難題 字典樹

2021-08-16 17:07:45 字數 1056 閱讀 6103

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

input

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

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

output

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

sample input

banana

band

bee

absolute

acmba

b band

abc

sample output

2 3 1 0

普通的查詢字典樹中字首單詞數量,那麼即直接查詢樹中字首的最後乙個字母在節點中的訪問次數。

用陣列num記錄每個節點被訪問的次數。然後在查詢時返回num【rt】即該節點的計數值。

#include 

#include

using

namespace

std;

int tot;

int trie[500000][26];

int num[500000];///記錄節點被訪問次數

int insert(char *str,int rt)//建樹

num[trie[rt][x]]++;

rt=trie[rt][x];

}}int find(char *str,int rt)//查詢字典

return num[trie[rt][x]];

}char str[100];

int main()

char s[15];

while(scanf("%s",s)!=eof)

printf("%d\n",find(s,floor));

return

0;}

HDU 1251統計難題(字典樹)

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

HDU1251統計難題 字典樹

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

hdu 1251 統計難題 字典樹

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