HDU1251統計難題 字典樹

2021-06-22 04:03:22 字數 1235 閱讀 4415

題目:

problem description

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

input

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

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

output

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

sample input

banana

band

beeabsolute

acmba

bband

abc

sample output

231

0

題解:用字典樹儲存單詞,統計每種可能字首的單詞數;

樹的每個結點可以有26個子樹;對應26個小寫字母;(拓展:若單詞中包括大寫字母則是52個子樹,若還有數字,則是62個子樹,根據具體題目而定);

每個節點的資料部分存放統計從根到達此節點的共同字首的個數;

錯誤分析:1.輸入格式用gets(),一次輸入一行;

2.q的子節點沒有建立並賦空;

#include#include#include#includeusing namespace std;

#pragma comment(linker,"/stack:102400000,102400000")

#define max 26

char a[15];

struct tritree //儲存結構

*tri;

void build_tri() //建立根節點

void insert_tri(char a) //把每個字串插入字典樹中

p->next[id]=q;

p=p->next[id];

}else

}}int find_tri(char a) //查詢統計單詞個數

return p->count; //因為a最終遍歷到的地方就是以a為字首的單詞個數;

}int main()

return 0;

}

HDU 1251統計難題(字典樹)

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

hdu 1251 統計難題 字典樹

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

HDU 1251 統計難題 字典樹)

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