HDU1251统计难题(字典树模板)
2015-01-21 20:26
246 查看
先来百度百科对字典树的介绍:
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。
字典树的根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串;
每个节点的所有子节点包含的字符都不相同。
字典树的应用有串的快速检索、串排序、串的最长公共前缀。
统计难题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251
字典树模板就能过的题,下面是AC代码
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。
字典树的根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串;
每个节点的所有子节点包含的字符都不相同。
字典树的应用有串的快速检索、串排序、串的最长公共前缀。
统计难题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251
字典树模板就能过的题,下面是AC代码
#include <iostream> #include <cstring> #pragma warning(disable:4996) using namespace std; /*num记录有几个单词通过当前结点 mark标记是否为一个单词的结束位置*/ struct node{ int num; node *son[26]; bool mark; }; node a[1000000]; int cnt = 0; /*初始化结点结构体*/ void clearnode(node *p){ p->num = 0; p->mark = false; for (int i = 0; i < 26; i++)p->son[i] = NULL; } /*插入函数*/ void insert(node *root, char *s){ node *p = root; int len = strlen(s); for (int i = 0; i < len; i++){ int id = s[i] - 'a'; if (p->son[id] == NULL){ //找不到相应的字母结点时新建一个结点 cnt++; clearnode(&a[cnt]); p->son[id] = &a[cnt]; } p->son[id]->num++; p = p->son[id]; } p->mark = true; } /*查找函数*/ int findstr(node *root, char *s){ node *p = root; int len = strlen(s); for (int i = 0; i < len; i++){ int id = s[i] - 'a'; if (p->son[id] != NULL) p = p->son[id]; else return 0; } return p->num; } int main() { char s[12]; clearnode(&a[0]); node * root = &a[0]; while (gets(s) && s[0]) insert(root, s); while (gets(s)) cout << findstr(root, s) << endl; return 0; }
相关文章推荐
- hdu1251统计难题-字典树模板题
- 字典树模板 hdu1251统计难题
- hdu1251统计难题(字典树小试牛刀)
- HDU 1251 统计难题 (字典树基本模板,有详细注释)
- hdu1251统计难题+字典树
- HDU 1251 统计难题(字典树模板题)
- hdoj 统计难题 1251 (字典树模板)
- 统计难题(字典树模板)
- HDU 1251 统计难题 (字典树模板题)
- HDOJ 题目1251统计难题(字典树,模板)
- HDU 1251 (统计难题) 字典树模板&&map实现
- HDU 1251 统计难题(字典树模板)
- HDOJ 1251-统计难题【模板:字典树】
- hdu1251-统计难题-字典树模板题
- HDU1251统计难题(水字典树)
- hdu 1251 统计难题 字典树解释 +字典树模板
- HDU - 1251 统计难题(字典树模板题)
- hdu1251统计难题(字典树模版)
- 【字典树模板(数组实现)】HDU 1251 统计难题
- hdu1251统计难题(字典树)