摘要: 最小表示法: 定义: 就是一个字符串的最小表示形式 解决过程: 将原字符串 \(s\) 复制一遍放在串尾 s=s+s; 设 \(i=0\) 指向字符串头,\(j=i+1\)。 int i=0,j=1,len=s.size()/2; 再设一个偏移量 \(k=0\) ,如果 \(s[i+k]==s[j+ 阅读全文
posted @ 2021-09-25 21:09 Evitagen 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 哈希表 引入: 如果我们要存放一堆数据,但是这些数据很大,直接用 \(vis\) 之类的不能忍一下。 而且要求尽量做到 \(O(1)\) 查询 那么就引入了哈希表。 定义: 散列表(又称哈希表,\(Hash Table\))是一种常用数据结构。它按照哈希特征分类存放,能够实现插入 \(O(1)\), 阅读全文
posted @ 2021-09-25 20:19 Evitagen 阅读(194) 评论(0) 推荐(0) 编辑
摘要: [CERC2014]Virus synthesis 题意: 初始有一个空串,有以下操作: 串开头或末尾添加一个字符 向前复制,形成回文串 询问要操作成给定的串需要多少次操作。 分析: 首先,我们还是先求出来对应给定的串的后缀自动机。 可以大致推算出来,这种题目一般都是 \(DP\) ,我们设 \(d 阅读全文
posted @ 2021-09-25 18:37 Evitagen 阅读(31) 评论(0) 推荐(0) 编辑
摘要: P5685 [JSOI2013]快乐的 JYY 题意: 给定两个字符串,求出两个串公共回文子串的个数。 分析: 还是先建立出 \(A\) 的后缀自动机。 考虑对于一个节点,我们应该记录它表示的回文串以它为后缀的回文串的总的出现次数。 统计以某个节点为后缀的,则总只会记录当前加入的 \(B\) 字符的 阅读全文
posted @ 2021-09-25 18:33 Evitagen 阅读(32) 评论(0) 推荐(0) 编辑