摘要: 题意:n个字符串(n<=10)求最长公共子串的长度 前置技能点:https://www.cnblogs.com/wenci/p/10432932.html (两个字符串求最长公共子串的长度) 既然知道了两个串的最长公共子串怎么求 那我们延伸一下,考虑两个变量,maxx表示在当前拿上来匹配得这个串在每 阅读全文
posted @ 2019-02-25 20:37 温词 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机的一大用处就是求最长公共子串了 这道题的话题意就是给你两个字符串,求最长公共子串 做法的话是先使用一个字符串建立SAM,然后让另一个串在上面进行匹配 匹配的策略是优先匹配当前节点的下一个字符,如果没有可以匹配的,就沿着parent树向上跳,如果到根了,就重新初始化重新开始搜,如果不是根就往 阅读全文
posted @ 2019-02-25 19:48 温词 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 专门开一个帖子记录一下自己在学习SAM时做的题,并总结一下做法 1、LCS https://www.cnblogs.com/wenci/p/10432932.html 这道题是要求对两个字符串查找最长公共子串,具体做法就是先对一个串建SAM,然后另一个串在SAM上大力匹配,具体匹配策略见以上链接 2 阅读全文
posted @ 2019-02-25 19:39 温词 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 这几天感觉要学的要做的有点多,就偷了个懒没写笔记,赶紧补一下 莫队嘛,一个离线处理各种区间(或树上)询问的神奇算法 简单而言,按左端点排个序然后指针l,r递推就好了 复杂度证明貌似是不待修改的n^1.5,带修改的n^5/3(证明又与我何干呢) 这东西我只学了一天左右,感觉常规题没什么亮点,毒瘤起来就 阅读全文
posted @ 2018-12-24 21:01 温词 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题面见https://www.luogu.org/problemnew/show/P2468 然后这道题属于合二为一题,看一眼数据范围就能发现 首先我们先考虑50分,二维前缀和维护一下(反正我不记得公式,手推了半天) tot[i][j][k]表示矩阵(1,1)到(i,j)中数值大等于k的总和 num 阅读全文
posted @ 2018-12-21 19:57 温词 阅读(243) 评论(0) 推荐(1) 编辑
摘要: 我校本周讲课中讲了平衡树和可持久化线段树,我平衡树还没学清楚,那我们先学习一下可持久化线段树 题面https://www.luogu.org/problemnew/show/P3919 维护两个操作 操作一:在某个历史版本上修改某个点的值 操作二:在某个历史版本上查询某个点的值 第一反应就是n棵线段 阅读全文
posted @ 2018-12-19 20:44 温词 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题面见https://www.luogu.org/problemnew/show/P2596 题面就是描述了一个书柜从上到下放着书,可以看作一个序列,每个数的序号为它在从上向下数第几本 一开始建树偷了个懒,就直接一个个insert 因为题目中都是以书的编号进行操作,所以记一个pos[ ] 操作一:把 阅读全文
posted @ 2018-12-19 10:42 温词 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 这道题据说是noi题目中算是比较毒瘤的数据结构题了,5k多的代码加上随手写挂细节,我调了两天 题面见https://www.luogu.org/problemnew/show/P2042 (歪个题,这类区间操作的数据结构题可以先去写GSS系列题,会比较容易理解合并的操作) (再歪个题,我将在近期补一 阅读全文
posted @ 2018-12-17 20:19 温词 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 题面https://www.luogu.org/problemnew/show/P3425 题面说赢的最多的人最少赢几场,肯定是向二分的方向思考 建立源点向每一场比赛连容量为1的边,从每场比赛向参赛两个人各连一条容量为1的边,表示一场比赛有一个人赢 二分一个最多的人赢的场数,从每个人向汇点连容量为m 阅读全文
posted @ 2018-12-15 10:28 温词 阅读(209) 评论(0) 推荐(0) 编辑
摘要: splay是支持区间操作的,先做这道题入个门 大多数操作都和普通splay一样,就不多解释了,只解释一下不大一样的操作 阅读全文
posted @ 2018-12-15 10:18 温词 阅读(177) 评论(0) 推荐(0) 编辑