随笔分类 - 字符串
摘要:AC自动机学习笔记 暑训过程中重新学了一遍,简要记录一下随想。 概要 用途 主要用来解决 单词集 \(T\) 与 给定文本串 \(S\) 匹配的问题。 建树复杂度 \(O(\sum |T_i|)\),单词询问复杂度 \(O(|S| + \sum |T_i|)\)。 Trie 与 Fail AC 自动
阅读全文
摘要:一些乱搞 众所周知,实际上大部分字符串算法都可以通过二分加哈希来替代,比如“马拉车”。 不止是这样,有些时候传统算法做起来比较困难,反而一些乱搞更加高效。 Bitset与串的匹配 闲话 仅仅讨论单文本串的情况。 如果模式串给定,求其在文本串中出现的位置,那么就根据模式串集合构建一个 AC自动机。 如
阅读全文
摘要:字符串算法与自动机 前言 觉得字符串这个东西本身应该有一个非常系统的体系,但是之前的学习一直都是零散的。 自动机 先说说什么是自动机,其实在OI Wiki上面已经十分完备了,这里以自己的理解再总结一遍。 自动机是一种数学模型,它所针对的对象是 “信号序列”,也就是一串 具有顺序 的信号,在 OI 方
阅读全文
摘要:Manacher 学习笔记 问题 求出串 \(s\) 中最长回文串的长度。 分析 数据范围不大的情况下,估计还是可以哈希加二分解决。 但是严格线性的算法还是更加优秀的。 字符串这几个基础算法绕来绕去实际上就是一个自动机的思想,我当前想要计算某个答案,于是看看之前的答案是否能有帮助。 首先定义 \(r
阅读全文
摘要:01Trie 结合板子 CF2093 来说 实际上和普通的字典树没有过多的区别,最大的区别在于操作的对象不同。 字典树是统计单词出现的数量。 01Trie是把数值转换成 \(01\) 串,从而在某种意义上将整数的比较和字典序联系起来,不难想到,这样一个数据结构可以做到平衡树能够做的大部分事情,并且可
阅读全文
摘要:KMP 学习笔记 高中的时候只是迷迷糊糊地理解了一点吧,停留在了背板的层面,后来甚至连板都背不利索了。 从现在的视角来看KMP,又有新的收获。 Intro 去理解一个算法一个比较好的方式其实是建立实际意义。 为什么打游戏的时候发不出藏话?试想一下,如果你在聊天框里面输入一个 \(114514\) 长
阅读全文

浙公网安备 33010602011771号