数据结构
Jeucai
一个想当游戏策划的程序员
刘看山平台名称:盖木欧瓦
展开
-
【字符串】字符串的模式匹配-BF和KMP
字符串的模式匹配定义 在字符串中寻找子串(第一个字符)在串中的位置相关 在串的模式匹配中,子串称为模式,主串称为目标BF算法运行时间为O(n*m)1、初始时让目标T的第 0 位与模式P的第 0 位对齐;2、顺序比对目标T与模式P中的对应字符:(1)若 P 与 T 比对发现对应位不匹配,则本趟失配。将 P 右移一位与 T 对齐,进行下一趟比对;(2)若 P 与 T 对应位都相等,...原创 2019-10-06 09:58:03 · 264 阅读 · 0 评论 -
【字符串】【hdu2222】AC自动机
AC自动机一种多模匹配算法(如:有N个字符串Si以及一个字符串T,计算每个字符串Si在T中出现的次数)原理:KMP+Trie算法详解:ac自动机最详细的讲解,让你一次学会ac自动机模板const int C = 26;const int N = 1e5;stack <int> st; struct Node { int son[C], next, end; ...原创 2019-10-04 10:06:49 · 150 阅读 · 0 评论 -
【字符串】【Trie】【hdu1251】计算字符串最长公共前缀
计算字符串最长公共前缀解法之一:利用字典树(Trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。键由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。trie中的键通常是字符串,但也可以是其它的结构。trie的算法可以...原创 2019-10-03 13:53:51 · 365 阅读 · 0 评论 -
【字符串】Manacher
字符串相关算法—Manacher时间复杂度O(n)用途:计算字符串S的最长回文子串长度详解1详解2思路1、首先,我们要记录下目前已知的回文串能够覆盖到的最右边的地方。2、同时,覆盖到最右边的回文串所对应的回文中心也要记录。3、以每一位为中心的回文串的长度也要记录,后面进行推断的时候能用到。4、对于新的中心,我们判断它是否在右边界内,若在,就计算它相对右边界回文中心的对称位置,从而...原创 2019-09-29 15:19:19 · 114 阅读 · 0 评论 -
【图论】最小生成树
最小生成树定义:如果带权图G(V,E)有子图G’(V’,E’)是一棵树且满足V=V’,则称G‘是G的一颗生成树,其中边权之和最小的称为最小生成树。(带权图: 如果给图 G 的每一条边都赋一个值, 则图 G 称为带 权图, 无权图可以视为边权均为 1 的带权图)(树: 如果图 G 中没有环, 则称 G 是一棵树)(n 个结点的树必定有 n-1 条边)Kruskal算法时间复杂度: O(E...原创 2019-09-26 13:07:33 · 202 阅读 · 0 评论 -
【数据结构】【单向链表】实现集合交并差等操作
题目编写一组程序,用带头结点的有序单链表实现一个集合,放在“SetList. h"中。要求实现这个集合的结构和相关的操作。至少应包括初始化,用尾插法建立集合,查找给定元素是否在集合内,将新元素插入集合中,删除集合中指定元素,求两个集合的并、交、差、输出等操作的实现。要求设计一个主程序,首先定义3个用有序单链表实现的集合A、B、C并初始化为空集合,其元素的数据类型为整型;再依次读入若干整数创建一...原创 2019-09-22 10:15:11 · 2562 阅读 · 1 评论