HDU1251 統計難題 【字典樹】
統計難題
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 57458 Accepted Submission(s): 20099
Problem Description
Ignatius最近遇到一個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),現在老師要他統計出以某個字串為字首的單詞數量(單詞本身也是自己的字首).
Input
輸入資料的第一部分是一張單詞表,每行一個單詞,單詞的長度不超過10,它們代表的是老師交給Ignatius統計的單詞,一個空行代表單詞表的結束.第二部分是一連串的提問,每行一個提問,每個提問都是一個字串.
注意:本題只有一組測試資料,處理到檔案結束.
Output
對於每個提問,給出以該字串為字首的單詞的數量.
Sample Input
banana
band
bee
absolute
acm
ba
b
band
abc
Sample Output
2
3
1
0
Author
Ignatius.L
問題連結:HDU1251 統計難題
題解:字典樹模板題
AC的C語言程式碼:
#include<stdio.h>
#include<string.h>
#define N 500000
int tot,n;
int trie[N][26];
int ans[N];
void insert(char *s,int rt)
{
int i;
for(i=0;s[i];i++){
int x=s[i]-'a';
if(!trie[rt][x])
trie[rt][x]=++tot;
ans[trie[rt][x]]++;
rt=trie[rt][x];
}
}
int search(char *s)
{
int rt=0,i;
int len=strlen(s);
for(i=0;i<len;i++){
int x=s[i]-'a';
if(!trie[rt][x])
return 0;
rt=trie[rt][x];
}
return ans[rt];
}
int main()
{
char s[15];
while(gets(s)&&strlen(s)){
insert(s,0);
}
while(gets(s)){
printf("%d\n",search(s));
}
return 0;
}
相關文章
- 字典樹專題
- Trie樹,字典樹
- 字典樹
- codevs 4189 字典【字典樹】dev
- 字典樹Trie
- 字典樹(Trie)
- trie字典樹
- [BJOI2017] 樹的難題
- 字典樹學習
- 字典樹(字首樹)簡單實現
- 資料結構之樹( 線段樹,字典樹)資料結構
- 一些“字典樹”典
- P8306 【模板】字典樹
- 一文搞懂字典樹
- 資料結構-字典樹資料結構
- P3714 [BJOI2017] 樹的難題
- 用python字典統計CSV資料Python
- 祖先樹統計
- 字典樹及其C++實現C++
- 題解0014:信奧一本通1472——The XOR Largest Pair(字典樹)AI
- 雙陣列字典樹(Double Array Trie)陣列
- Android疑難bug統計Android
- Android程式設計師會遇到的演算法(part 5 字典樹)Android程式設計師演算法
- 【字串演算法】字典樹詳解字串演算法
- bzoj3439: Kpm的MC密碼(主席樹+DFS序+字典樹)密碼
- 一個簡單的統計問題(解決方案:Trie樹)
- 資料字典和固定表統計資訊更新
- AC自動機+字典序+樹狀陣列陣列
- CF1902E. Collapsing Strings-LCP、字典樹
- 一類生成樹計數問題。
- 難題
- Trie樹:字串頻率統計排序字串排序
- 管理系統解決企業管理難題
- ABC353E字典樹處理最長公共字首
- T9-POJ 1415 模擬輸入法+字典樹
- 集合難題
- Minitab Express for Mac v1.5.0啟用版:輕鬆解決統計分析難題ExpressMac
- UiBot RPA如何解決系統間整合難題?UI