博客详解:

http://www.cnblogs.com/huangxincheng/archive/2012/11/25/2788268.html

http://eriol.iteye.com/blog/1166118

http://www.360doc.com/content/12/1116/15/9615799_248213540.shtml

http://www.cnblogs.com/tanky_woo/archive/2010/09/24/1833717.html

http://blog.csdn.net/youngyangyang04/article/details/6840393

下面给出一些关于字典树的题目及简略题解:

HDOJ 1251 统计难题:
http://www.wutianqi.com/?p=1364

HDOJ 1671 Phone List
http://www.wutianqi.com/?p=1366

之前打算要写题解的题,但最后就只写了2个,而且是不需用trie树也可以解决的。。。
POJ 2001 AC
POJ 1451 AC 该题是看题解做的。。。
POJ 2513 AC 离散+并查集+欧拉通路(可以不用trie) 有详细题解,请戳 http://www.cnblogs.com/chenxiwenruo/p/3535156.html
POJ 1035 AC 可以用trie模拟,也可以直接暴力比较
POJ 1204 AC 先将要查找的单词建trie树,再扫描整个矩阵,8个方向搜索即可(网上有人说这题可以拿来练AC自动机)
POJ 2004 AC 没用trie树,有详细题解,请戳http://www.cnblogs.com/chenxiwenruo/p/3535794.html
POJ 1816 AC trie+dfs

水题:
POJ 3630/ HDU 1671 AC
POJ 1056 没做,和POJ3630差不多
POJ 2945 没做,就是统计某个字符串出现的次数,可以离散化水过
POJ 3283 看懂后就是一个大水题,从后往前插入即可,没做

当时训练字典树的时候未能解决的题,一直想自己做出来,不看题解, 结果一直到告别ACM也没搞定,其实是后来也没在研究trie树了。。。:POJ 2778,POJ 3376

下面给出我当时A题所用的模板,是参考我们学校一个大牛的,网上很多其它人的模板太复杂了。。。

#define maxn 1100000
struct Nod { //0为无效值
int lnk[], val;
bool isend; //为true的话,则是一个字符串的结尾
void init() {
memset(lnk, , sizeof(lnk));
val = ;
}
};
const char BASE = 'a';
struct Trie {
Nod buf[maxn];
int len;
void init() {
buf[len=].init();
}
int insert(char * str, int val) {
int now = ;
for(int i = ; str[i]; i ++) {
int & nxt = buf[now].lnk[str[i]-BASE];
if(!nxt) buf[nxt=++len].init();
now = nxt;
}
buf[now].val = val;
return now;
}
int search(char * str) {
int now = ;
for(int i = ; str[i]; i ++) {
int & nxt = buf[now].lnk[str[i]-BASE];
if(!nxt) return ;
now = nxt;
}
return buf[now].val;
}
} trie;

字典树trie的学习与练习题的更多相关文章

  1. 字典树(Trie)的学习笔记

    按照一本通往下学,学到吐血了... 例题1 字典树模板题吗. 先讲讲字典树: 给出代码(太简单了...)! #include<cstdio> #include<cstring> ...

  2. 字典树trie学习

    字典树trie的思想就是利用节点来记录单词,这样重复的单词可以很快速统计,单词也可以快速的索引.缺点是内存消耗大 http://blog.csdn.net/chenleixing/article/de ...

  3. [POJ] #1002# 487-3279 : 桶排序/字典树(Trie树)/快速排序

    一. 题目 487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 274040   Accepted: 48891 ...

  4. 『字典树 trie』

    字典树 (trie) 字典树,又名\(trie\)树,是一种用于实现字符串快速检索的树形数据结构.核心思想为利用若干字符串的公共前缀来节约储存空间以及实现快速检索. \(trie\)树可以在\(O(( ...

  5. 字典树(Trie)详解

    详解字典树(Trie) 本篇随笔简单讲解一下信息学奥林匹克竞赛中的较为常用的数据结构--字典树.字典树也叫Trie树.前缀树.顾名思义,它是一种针对字符串进行维护的数据结构.并且,它的用途超级广泛.建 ...

  6. 字典树 trie树 学习

    一字典树 字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种   二.性质 根节点不包含字符,除根节点以外的每一个节点都只包含一个字符: 从根节点到某一节点,路径上经过的字符串连接起 ...

  7. LeetCode 14. Longest Common Prefix字典树 trie树 学习之 公共前缀字符串

    所有字符串的公共前缀最长字符串 特点:(1)公共所有字符串前缀 (好像跟没说一样...) (2)在字典树中特点:任意从根节点触发遇见第一个分支为止的字符集合即为目标串 参考问题:https://lee ...

  8. 字典树(Trie)学习笔记

    目录 什么是字典树 如何存储字典树 如何查找字符串有没有出现 第一个图的那种线段树 应用 例题 1.统计难题 2.P2580 于是他错误的点名开始了 什么是字典树 上图来自luogu题解 这是一种字典 ...

  9. 浅谈字典树Trie

    \(\;\) 本文是作者学习<算法竞赛进阶指南>的所得,有些语言是摘自其中. \(\;\) 基础知识 定义 \(\;\) 字典树(Trie):是一种支持字符串查询的多叉树结构.其中的每个节 ...

随机推荐

  1. STM32单片机实现中断后不继续向下执行而是返回到main函数

    做公司的一个项目,实现一个功能就是 机器在进行一项功能时(这项工作时间挺长),想要取消这项工作,重新选择.想了半天没想出来,结果同事提醒了一句,可以在程序中加一个外部中断,在中断中软件复位程序.用到以 ...

  2. android保存图片的方式

    Android中保存图片的两种方式 第一种是保存到数据库: 1.保存到数据库: 2.从数据库读取: 二是以图片格式保存到本地 1. A.声明tempFile以保存到指定路径: B.保存到tempFil ...

  3. hdu 4217 Data Structure?/treap

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4217 可用线段树写,效率要高点. 这道题以前用c语言写的treap水过了.. 现在接触了c++重写一遍 ...

  4. 微软开放技术(中国)携 CKAN 和 OData 技术引入基于 Azure 的开放数据平台

    今天,微软开放技术(中国)通过微软公有云Azure引入一个全新的开放数据平台,该平台基于开源数据门户解决方案 CKAN,以及由微软开放技术(中国)特别针对中国市场优化的ODATA插件来增强其国际化和本 ...

  5. 转载:监控每个节点(Indices部分)

    集群的健康只是一个方面,它是对整个集群所有方面的一个很高的概括.节点状态的api是另外一个方面,它提供了关于你的集群中每个节点令你眼花缭乱的统计数据. 节点的状态提供了那么多的统计数据,在你很熟悉它们 ...

  6. 条款21:必须返回对象object时,不要返回其引用reference

    如下为一个有理数类,其中包含一个用来计算乘积的函数: #include <iostream> using namespace std; class Rational { public: R ...

  7. 3-附1 ->和*的区别

    问题: c++ .和 ->有什么区别? 还有什么是继承什么是派生?-------------------------------------------------------------- 比 ...

  8. Log4J配置文件说明

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

  9. 远航1617团队alpha版本分数分配与人员调动

    一.根据项目开始初期的分数分配要求及项目发布后大家的讨论,我们对组内成员的分数分配如下: 刘昊岩 20.5 周  萱 20.0 林谋武 19.0 杨  帆 18.5 高小洲 21.0 谢勤政 21.5 ...

  10. json序列指定名称

    class jsonModel{ public string md5 { get; set; } public object report { get; set; } public string @v ...