July西电讲座2014.09第一部分、面试–笔试面试考什么–解决笔试面试题的常用算法–常用算法的时间复杂度–O(N)时间复杂度内能解决的问题第二部分、算法–如何学习算法循序渐进(KMP)相互串联(以Trie树、后缀树,贪心、动态规划为例)追本溯源(二叉树、红黑树、2-3-4树、B树?.
分类:
编程语言 时间:
2015-02-20 00:22:50
阅读次数:
376
树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树、三叉树、静态搜索树、AVL树,线段树、SPLAY树,后缀树等等.. 枚举那么多种数据结构只是想说树方面的内容相当多,本...
分类:
其他好文 时间:
2015-01-31 14:28:37
阅读次数:
185
题目大意:给出一些字符串,给出一些询问,每次问当前串在源串中的几个中出现过。
思路:将所有源串建立广义后缀自动机。每次新的一个串的时候,把last清成root,往里面加的时候,如果last指针往下走的时候已经有节点了,就需要拓展一个新的节点出来,否则就不满足广义后缀自动机的性质。此外,每一个节点代表的不一定是一个串,可能代表的是多个串的子串,所以要在每个点后面挂链,来表示这个节点是属于哪...
分类:
其他好文 时间:
2015-01-21 11:52:46
阅读次数:
1125
题目大意:给出一个字符串,给出一些询问,每次问几个后缀两两之间的LCP之和。
思路:保证Σask数量级在O(n)上,可以考虑一下虚树了。建立虚树之后,这题就和差异那个题一样了。但是必须要打时间戳啊,要不死的很惨的啊。。
CODE:
#include
#include
#include
#include
#define MAX 1000010
using names...
分类:
其他好文 时间:
2015-01-19 19:12:37
阅读次数:
151
SVT什么意思?
suffix virtual tree。
没有错!后缀虚树
好了,下面发一段以前的文字。
话说其实后缀数组分治能写,当时想shei了。
Vn:
啊,水题。
一看到“后缀”和这数据范围,肯定后缀数组、后缀自动机、后缀树走起!
然后我们可以轻松构造出来一个后缀树,然后每次询问树形DP随便乱搞就能过了。但是这个时候显然会TLE,所以我们可以尝试利用【...
分类:
其他好文 时间:
2015-01-17 18:07:00
阅读次数:
441
题目大意:求所有后缀长度减去LCP长度的二倍。
思路:之前用后缀数组写过,但是做法并不是很直观。现在学了后缀树再来写一次,这次思路就很清晰了。
首先我们把字符串按照倒序插入到后缀树中。形成的后缀树有一个很好的性质,连个后缀节点的LCA就是这两个后缀的LCP的位置,LCA的len值自然就是两个后缀的LCP。
建好树之后,进行一次树形DP,统计出来每两个后缀的LCP长度,计入总答案。
...
分类:
其他好文 时间:
2015-01-17 18:06:18
阅读次数:
221
题目大意:给出一个环形的字符串,问从哪里开始是的这个字符串的字典序最小。
思路:最小表示法和后缀自动机的裸题,不过我是为了学后缀自动机才写的这个题,就没有去学最小表示法。
做法很简单,先建立一个后缀自动机,然后从根开始沿tranc指针从a->z走len次到达的点就是字典序最小的字符串的结尾点,求起始点只要减一下长度再+1即可。
对于后缀自动机的理解:http://wyfcyx...
分类:
其他好文 时间:
2015-01-17 10:04:22
阅读次数:
197
首先 秦神QY Orz
题解:
这道题后缀数组过于鬼畜(wo’tai’ruo’bu’gan’xie)
所以写了简单好写易于理解不用分治不用RMQ的SAM大叔。
题解:
首先其实我们需要一个后缀树,然后两个后缀的lcp就是它们lca的len。
后缀树可以通过反序后缀自动机得到,这个很水。
然后len的性质就是后缀自动机的那个len(我写的‘deep’)。
后缀树上DP就水了...
分类:
其他好文 时间:
2015-01-15 09:27:52
阅读次数:
199
题目大意:给定一个字符串,求Σ[1
前两项是可以O(1)求的 我们要求的就是LCP之和
对反串建立后缀自动机 那么parent指针连成的树就是后缀树
直接在后缀树上DP就行- -
对于每个节点统计所有子树两两right集合大小乘积之和乘上这个节点的深度即可
QY神在学校讲了一天的SAM。。。 现在我觉得我还是回去学大型建筑机械吧233- -
#include
#include
#i...
分类:
其他好文 时间:
2015-01-05 16:47:28
阅读次数:
141
作者:July。出处:http://blog.csdn.net/v_JULY_v/。引记 此前一天,一位MS的朋友邀我一起去与他讨论高速排序,红黑树,字典树,B树、后缀树,包含KMP算法,只有在解说KMP算法的时候,言语磕磕碰碰,我想,原因有二:1、博客内的东西不常回想,忘了不少;2、便是我对KMP...
分类:
编程语言 时间:
2014-12-31 18:05:09
阅读次数:
437