problem description
ignatius最近遇到乙個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),現在老師要他統計出以某個字串為字首的單詞數量(單詞本身也是自己的字首).
input
輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行代表單詞表的結束.第二部分是一連串的提問,每行乙個提問,每個提問都是乙個字串.
注意:本題只有一組測試資料,處理到檔案結束.
output
對於每個提問,給出以該字串為字首的單詞的數量.
sample input
banana band bee absolute acm ba b band abcsample output
2 3 1 0problem description
ignatius最近遇到乙個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),現在老師要他統計出以某個字串為字首的單詞數量(單詞本身也是自己的字首).
input
輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行代表單詞表的結束.第二部分是一連串的提問,每行乙個提問,每個提問都是乙個字串.
注意:本題只有一組測試資料,處理到檔案結束.
output
對於每個提問,給出以該字串為字首的單詞的數量.
sample input
banana band bee absolute acm ba b band abcsample 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...