数据结构
文章平均质量分 89
AndyZhang
一些当前好走的路会越走越窄,而一些当前艰难的路却会越走越宽广。
展开
-
后缀树学习笔记
在pongba的讨论组上看到一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题:在文本T里查询T是否包含子串P(复杂度同流行的KMP相当)。 文本T里找出最长重复子串。比如abcdabcefda里abc同da都重复出现,而最转载 2012-11-13 00:49:32 · 1102 阅读 · 0 评论 -
后缀数组——处理字符串的有力工具,好好学习
后缀数组——处理字符串的有力工具作者:罗穗骞2009年1月 【摘要】 后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。本文分两部分。第一部分介绍两种构造后缀数组的方法,重点介绍如何用简洁高效的代码转载 2012-11-13 23:54:29 · 3498 阅读 · 1 评论 -
poj2481-树状数组
这里就是求区间覆盖问题,如果你的区间完全覆盖它的,那么你就比他强壮。求出比自己强壮的牛数。 树状数组:树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n], 用lowbit函数维护了一个树的结构那么查询a[1]+...+a[n]的时间是log级别的,而且是一个在线的数据结构, 支持随时修改某个元素的值,复杂度也为log原创 2012-11-15 01:12:55 · 3875 阅读 · 0 评论 -
优先队列及最小堆最大堆
1 堆 1.1 简介n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):(1)ki=号。//k(i)相当于二叉树的非叶结点,K(2i)则是左孩子,k(2i+1)是右孩子若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(原创 2013-08-25 15:03:03 · 35711 阅读 · 2 评论