分析:
關於字典樹的題目似乎都有乙個普通適用性的模板,有時只是稍加改動來滿足臨時的要求,我的乙個簡單的模板
#define maxnum 26//定義字典樹結構體
typedef struct
trie
trie;
//宣告乙個根
trie *root;
//初始化該根
void
init()
//對該字典樹的插入單詞操作
void insert(char *word)
tem = tem->next[*word-'a'
]; word++;
}tem->flag=true;}
//查詢乙個單詞的操作
bool search(char *word)
return tem->flag;
}//釋放字典樹記憶體操作,由於本題測試資料後程式自動跳出,所以這裡沒寫釋放記憶體函式
void del(trie *cur)
free(cur);
}
這道題目是一道典型的字典樹題目(trie),題目解法類似於 hdu 1247 hat』s words 的解法,這裡搜尋字首,然後對後邊用乙個遞迴搜尋就可以求出有多少字串是以此字串為字首,注意本身也是自己的字首。
#include #include#include
#include
#define maxnum 26
using
namespace
std;
//單詞
char words[50005][12
];//
定義字典樹
typedef struct
trie
trie;
trie *root;
intcount_num;
void
init()
void insert(char *word)
tem = tem->next[*word-'a'
]; word++;
}tem->flag=true;}
void dfs(trie *cur)
}int search(char *word)
dfs(tem);
return1;
}int
main()
while(scanf("
%s",w)!=eof)
return0;
}
HDU 1251統計難題(字典樹)
經典的字典樹題目。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。ac code ...
HDU1251統計難題 字典樹
題目 problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的...
hdu 1251 統計難題 字典樹
problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...