HDU1251统计难题(字典树模板)
来源:互联网 发布:店铺记账软件 编辑:程序博客网 时间:2024/05/15 11:18
先来百度百科对字典树的介绍:
字典树又称单词查找树,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];elsereturn 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;}
0 0
- HDU1251 统计难题(字典树模板)
- HDU1251统计难题(字典树模板)
- hdu1251-统计难题-字典树模板题
- 字典树模板 hdu1251统计难题
- hdu1251统计难题-字典树模板题
- HDU1251——统计难题(字典树模板)
- hdu1251 统计难题(字典树)
- hdu1251统计难题(字典树)
- hdu1251 统计难题(字典树)
- hdu1251 统计难题(字典树)
- hdu1251统计难题(字典树模版)
- HDU1251 统计难题(字典树)
- 统计难题(hdu1251,字典树)
- hdu1251 统计难题 (字典树查找)
- hdu1251统计难题(字典树)
- hdu1251 统计难题(字典树)
- hdu1251 统计难题(字典树)
- HDU1251-统计难题(字典树)
- IPSAN与FCSAN存储结构的区别
- 信号过系统问题
- PostgreSql的索引用法小结一
- Bluetooth 4.2 让每个蓝牙装置都有能连上网络的 IP 门牌,物联网应用更加到位
- Eclipse +Tomcat8.0配置Javaweb 开发环境
- HDU1251统计难题(字典树模板)
- [__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a97d4c0'报错
- Android 5.0(Lollipop)事件输入系统(Input System)
- Q4.8 To decide if T2 is a subtree of T1
- shell 脚本简单语法
- C/C++几个常见概念分析(指针、引用 、const常量、#define)
- OpenCV,在MFC的Picture控件中显示图像的若干可行方式
- 长沙男子半小时做700个俯卧撑 致横纹肌溶解
- 声明:关于该博客部分Java等方向知识参考来源的说明