- 博客(5)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
原创 从动态该规划角度理解kmp
kmp是一种高效的字符串匹配算法(模式匹配算法);给你一个主串m,模式串p。kmp可以找出p在m中的位置;比如主串m:abadabaad和模式串p:abaa;那么p在m中的位置是5;如果是纯暴力(朴素的模式匹配算法)的话时间复杂度会达到O(n*m),是比较高的;但是用kmp的话,时间复杂度会达到O(n+m);kmp是在朴素的模式匹配算法上进行优化的算法,我们首先来用一张图看一下...
2018-08-24 04:49:56 1312
原创 ac自动机(字符串的多模式匹配)
前面已经说过kmp是一种字符串匹配算法。就是给你一个模式串p,和一个主串m。让你找出p在m中的位置;ac自动机与kmp类似,也是一种字符串匹配算法。与kmp不同的是,kmp是单模式的字符串匹配算法。而ac自动机是多模式的字符串匹配算法。也就是给你n个模式串p1,p2,p3.......pn,和一个主串m。,让你找出这n个模式串在m中的位置。有的同学可能会进行n次kmp来解决多模式字...
2018-08-31 06:32:58 2425
原创 oj造数据
关于oj造数据主要用到的就是随机函数和文件流1.随机函数是rand(),头文件为<cstdlib>用法: int res = rand()%b + a;res是从a开始(包括a)连续数b个数这个区间中的一个随机数,( res = [a,b) );需要注意的是如果不设置随机种子的话,那么每次随机出来的数是一样的设置随机种子函数srand();头文件<cstdli...
2018-08-23 12:10:44 1022
原创 线段树002-区间修改
接下来讲解一下区间修改:在线段树001-概述中讲了单点修改,现在又增加了一种操作将区间x~y的值修改为v;比如在下面这个图中我要将1~5区间的值全都改为v;正常人的思维是把1~5这个区间的修改看成对点1,2,3,4,5的单点修改;但这样的复杂度是nlog(n)是比较高的;我们换一种想法,在修改区间的时候我们仍然像区间查询一样自上而下的寻找要修改的区间。那么我们最后找到区间是...
2018-08-22 18:25:02 197
原创 线段树 001- 概述
线段树就是一个能高效维护动态区间的一个数据结构;他能把一个区间分成多个区间,这些区间根据它们的之间的关系形成一个树形结构。这个过程可以构建出一颗完全二叉树。其中线段树的操作有: 1.修改 2.查询比如我们现在要维护一个长度为n的区间的和,那么当n=10的时候,该区间所对应的树为:可以发现每个节点代表一个区间,每个节点存的是该区间的和;...
2018-08-09 14:29:02 203
渗透神器明小子
2015-06-06
qt实现当单击树形控件是切换堆栈窗口
2017-10-30
关于多次为指针使用new和使用指针的问题
2017-10-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人