摘要: 字符串哈希就是将字符串转化为一个整数 Hash方法 给定一个字符串 \(s=s_1,s_2,s_3 ... s_n\) , 对字母$x$,我们规定 \(idx(x)=x−′a′+1\)。 (当然也可以直接用 $s_i$的 ASCII值) 1.自然溢出方法 \(hash[i]=hash[i−1]∗p+ 阅读全文
posted @ 2021-06-19 21:41 Evitagen 阅读(133) 评论(0) 推荐(0)
摘要: 后缀自动机 \(SAM\) 定义: 后缀自动机就是能接受某个串的所有后缀/字串的自动机。 与 \(AC\) 自动机类似,读入字符串后,建立起来一个自动机。但是建立过程不同。 预先步骤: 考虑自动机上一条由根出发的由节点和转移边构成的有向路径,把路径的转移边上的字符按顺序拼接起来可以得到一个字符串,假 阅读全文
posted @ 2021-05-24 21:57 Evitagen 阅读(139) 评论(0) 推荐(0)
摘要: 虚树 前置要求: 作用: 在树形 \(dp\) 中,一次询问仅仅涉及到整颗数中少量节点时,我们建立一棵只包含关键点的虚树,将非关键点构成的链简化成边或者是剪去,在叙述上进行 \(dp\) 。 虚数包含: 虚树包含所有的询问点和他们的 \(lca\) ,对于 \(k\) 个点的询问,整颗虚树最多有 \ 阅读全文
posted @ 2021-05-04 20:51 Evitagen 阅读(152) 评论(0) 推荐(0)
摘要: Atcoder ABC 199 A,B跳过 C: 题意: 给定一个字符串,有两种操作,第一种操作将两个字符调换,第二种操作将左右交换,输出最后的字符串。 解法: 通过题可以看出来我们需要用 \(O(n+q)\) 的时间复杂度的算法,第二种操作肯定不能直接用,因为 \(string\) 赋值也需要 \ 阅读全文
posted @ 2021-04-25 11:09 Evitagen 阅读(291) 评论(3) 推荐(0)
摘要: 树形 \(dp\) 定义: 其实就是在树上递归进行的 \(dp\) 过程: 利用一道题进行举例子:P1352 没有上司的舞会 就是如果选择一个节点,一个节点的父亲一定不要选择,求权值之和最大值。 我们定义 \(f[i][1/0]\) 表示以 \(i\) 为根的子树的最优解(参加/不参加). 推出两个 阅读全文
posted @ 2021-04-12 21:44 Evitagen 阅读(255) 评论(0) 推荐(0)
摘要: 状态压缩dp 一般来说,状态压缩dp的思路是这样的: 1.枚举第一行所有的状态,构造n位的01串。 2.状态设置:第 \(i\) 行,第 \(i\) 行的状态,第 \(i\) 行0或1的数量。 其他情况自行判断。 3.进行dp计算(一般来说会有许多if) 状压特点: 1.数据范围小。 2.一般来说为 阅读全文
posted @ 2021-04-06 16:33 Evitagen 阅读(154) 评论(0) 推荐(0)
摘要: 康托展开 康托展开一般用于求一个序列的字典序,或是根据字典序求序列。 我们看这样一个序列 : 1 2 3 4 5 如果序列变成: 1 2 4 3 5 其字典序该怎么算呢? \(3*(5-4)!=3\) 根据这个我们可以推出一个简单的式子:一个序列的字典序为: \(\sum_{i=1}^{n}(ran 阅读全文
posted @ 2021-04-06 16:32 Evitagen 阅读(94) 评论(0) 推荐(0)
摘要: $\text{KMP}$匹配 \(kmp\) 匹配是一种高效的求两个字符串,其中一个串是否为另一个串的子串,并且要算出匹配位置的算法。 思想: 我们可以这么想,假如说现在有两个字符串 a b a a b b a b a b a b a b a b 如果一位一位去匹配,时间是 \(O(nm)\) ,会 阅读全文
posted @ 2021-03-16 18:51 Evitagen 阅读(82) 评论(0) 推荐(0)
摘要: EXGCD 拓展欧几里得算法 明明算是个基础知识为啥会没学过 我们知道gcd求的是最小公倍数,可以运用裴蜀定理求一个二元一次方程是否有解。 那么现在给定一个形如 \(ax+by=c\) 的方程,让你求 $x和y$的值,该怎么求呢? 这就引入了 \(exgcd\) 这个算法。 exgcd通常用来求形如 阅读全文
posted @ 2021-03-16 18:22 Evitagen 阅读(59) 评论(0) 推荐(1)
摘要: CF1494A ABC String 宣传博客 题目大意: 输入一串有$A,B,C$的字符串,把$A,B,C$分别定义为 "(" 或 ")",判断转换之后字符串是否合法。 解题思路: 读懂题目后,很容易就想到括号匹配这一道题,这道题的前置知识就是这个。 假设$b$为括号序列,括号匹配代码: queu 阅读全文
posted @ 2021-03-09 16:36 Evitagen 阅读(79) 评论(1) 推荐(0)