HDU 1251 統計難題 (Trie樹模板題)

2022-05-26 11:24:10 字數 1621 閱讀 9332

problem description

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

input

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

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

output

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

sample input

banana band bee absolute acm ba b band abc

sample output

2 3 1 0

problem description

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

input

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

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

output

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

sample input

banana band bee absolute acm ba b band abc

sample output

2 3 1 0

題意:trie樹模板題,統計出現次數,注意注釋

#include#include#includeusing namespace std;

const int maxn = 400000 + 20;

int tot;

char s[maxn];

int num[maxn] = ;//字首末尾編號為i的單詞數量。

int trie[maxn][26];

//trie[i][j] = k表示編號為i的節點的第j個孩子(內容為j的孩子)是編號為k的節點

//編號為整棵樹中的編號, 內容是值的編號,如小寫字母的字典樹中,'b'的編號為'b' - 'a' = 1;

void insert(char s)

}int find(char s)

return num[root]; }

int main()

//for(int i = 0; i < tot; i++)printf("num[%d]:%d\n", i, num[i]);

//for(int i = 0; i < tot; i++)for(int j = 0; j < 26; j++) if(trie[i][j])printf("trie[%d][%c] = %d\n", i, j+'a', trie[i][j]);

while(~scanf("%s",s))

return 0;

}

HDU 1251 統計難題 Trie

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

HDU 1251 統計難題 Trie

題目鏈結 統計難題 題目型別 trie 題解 trie的模板題,只不過這題坑點在沒給資料範圍,改成5e5就可以過了,用的劉汝佳藍書模板 include include include include include include include include include include us...

HDU1251統計難題 trie樹

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