字典树trie的学习与练习题
博客详解:
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的学习与练习题的更多相关文章
- 字典树(Trie)的学习笔记
按照一本通往下学,学到吐血了... 例题1 字典树模板题吗. 先讲讲字典树: 给出代码(太简单了...)! #include<cstdio> #include<cstring> ...
- 字典树trie学习
字典树trie的思想就是利用节点来记录单词,这样重复的单词可以很快速统计,单词也可以快速的索引.缺点是内存消耗大 http://blog.csdn.net/chenleixing/article/de ...
- [POJ] #1002# 487-3279 : 桶排序/字典树(Trie树)/快速排序
一. 题目 487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 274040 Accepted: 48891 ...
- 『字典树 trie』
字典树 (trie) 字典树,又名\(trie\)树,是一种用于实现字符串快速检索的树形数据结构.核心思想为利用若干字符串的公共前缀来节约储存空间以及实现快速检索. \(trie\)树可以在\(O(( ...
- 字典树(Trie)详解
详解字典树(Trie) 本篇随笔简单讲解一下信息学奥林匹克竞赛中的较为常用的数据结构--字典树.字典树也叫Trie树.前缀树.顾名思义,它是一种针对字符串进行维护的数据结构.并且,它的用途超级广泛.建 ...
- 字典树 trie树 学习
一字典树 字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种 二.性质 根节点不包含字符,除根节点以外的每一个节点都只包含一个字符: 从根节点到某一节点,路径上经过的字符串连接起 ...
- LeetCode 14. Longest Common Prefix字典树 trie树 学习之 公共前缀字符串
所有字符串的公共前缀最长字符串 特点:(1)公共所有字符串前缀 (好像跟没说一样...) (2)在字典树中特点:任意从根节点触发遇见第一个分支为止的字符集合即为目标串 参考问题:https://lee ...
- 字典树(Trie)学习笔记
目录 什么是字典树 如何存储字典树 如何查找字符串有没有出现 第一个图的那种线段树 应用 例题 1.统计难题 2.P2580 于是他错误的点名开始了 什么是字典树 上图来自luogu题解 这是一种字典 ...
- 浅谈字典树Trie
\(\;\) 本文是作者学习<算法竞赛进阶指南>的所得,有些语言是摘自其中. \(\;\) 基础知识 定义 \(\;\) 字典树(Trie):是一种支持字符串查询的多叉树结构.其中的每个节 ...
随机推荐
- 如何在Eclipse中配置Tomcat
1.Eclipse EE 配置Tomcat Eclipse EE 主要用于Java Web开发和J2EE项目开发.Eclipse EE中配置Tomcat比较简单,新建一个Tomcat Server即可 ...
- 基于Elasticsearch进行地理检索,计算距离值
实现步骤: 1.定义属性 [Serializable] public class Coordinate { public double Lat { get; ...
- epoll重要
EPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET).Level Triggered (LT). LT是缺省的工作方式,并且同时支持block和no-blocksocke ...
- 使用Ajax.BeginForm 中需要 上传文件 但 Request.files获取不到
使用Mvc里的插件jquery.unobtrusive-ajax.min.js 之前一直困在这里,一开始以为添加属性enctype="multipart/form-data"就可以 ...
- [转]SOLID开发原则-面向对象
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写. SRP The Single Responsibility ...
- [转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)
[转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1) http://yanue.net/post-123.html ...
- Midway-ModelProxy — 轻量级的接口配置建模框架
Midway-ModelProxy - 轻量级的接口配置建模框架 前言 使用Node做前后端分离的开发模式带来了一些性能及开发流程上的优势(见<前后端分离的思考与实践 一>), 但同时也面 ...
- Querying mergeinfo requires version 3 of the FSFS filesystem schema
环境: jdk 1.7; svn 3.0.4; TortoiseSVN 1.7.13 Subversion 1.7.10; IntelliJ IDEA 13.1.1;win7 64位系统 之前那个 ...
- vtune 不能查看pg的源代码
在编译的时候,要加enable-debug 选项 并且如果之前有没有加的话,一定要make clean
- CRT团队组员博客地址统计
CRT团队GitHub地址:https://github.com/CoffeeRobotTeam/Coffee-Robot-System 洪超 http://www.cnblogs.com/chaoh ...