题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4650 题意: 给你一个字符串s,问你s及其子串中,将它们拆分成"AABB"的方式共有多少种。 题解: 先只考虑"AA"的形式。 设pre[i]表示以s[i]结尾的"AA"串共有多少个,nex ...
分类:
编程语言 时间:
2018-02-12 21:44:17
阅读次数:
214
题意:求在N个串中都出现的最长子串 的长度 很容易想到二分转化为判定性问题。考虑长度M,我们按照长度M进行分组,每个组内进行答案验证,即检查组内是否有N个串的后缀都出现。 时间复杂度O(LlogM) 其实是个经典题。 二分时候记得初始化! ...
分类:
编程语言 时间:
2018-02-12 21:43:03
阅读次数:
217
"题目链接" Description 给出$n$个序列。找出这$n$个序列的最长 相同 子串。 在这里, 相同 定义为:两个子串长度相同且一个串的全部元素加上一个数就会变成另一个串。 思路 参考: "hzwer" . 法一:kmp 在第一个串中枚举答案串的开头位置,与其余$n 1$个串做$kmp$. ...
分类:
编程语言 时间:
2018-02-12 21:01:52
阅读次数:
192
说起来学了很久的后缀数组了 思想还是很容易明白的 最大的问题就是 代码看不懂 然后在不断模拟研究的过程中 终于弄清楚了一点 就决定写下来了 不然又会忘的QAQ 以下是代码 ps:首先要弄懂基数排序 定义:c[ ]数组 : 基数排序的桶 x[ ]数组:类似于rank数组,保存当前排序到的以每个位置开始 ...
分类:
编程语言 时间:
2018-02-12 20:09:11
阅读次数:
164
"题目链接" Description 一个长度为$n$的字符串$S$,令$T_i$表示它从第$i$个字符开始的后缀。求$$\sum_{1\leq i\leq j\leq n}len(T_i)+len(T_j) 2 lcp(T_i,T_j)$$其中,$len(a)$表示字符串$a$的长度,$lcp(a ...
分类:
编程语言 时间:
2018-02-12 15:19:07
阅读次数:
221
后缀数组是从去成都之前开始学的,但是当时只是写了遍板子既不会背也不会用。从成都回来之后依然不想做这个专题,到一月中旬才填坑。刚开始因为板子不理解非常费力气,后来慢慢写着写着就会背了,背着背着也有一种理解了一点的错觉……可能并不是十分理解原理,只不过学会了怎么用而已。按自己原来的题解和日记整理一下。 ...
分类:
编程语言 时间:
2018-02-11 22:37:04
阅读次数:
203
1 #include 2 using namespace std; 3 4 char str[1000005]; 5 int x[1000005],y[1000005],u[1000005],v[1000005],r[1000005],o[1000005],m=256,n; 6 7 int main... ...
分类:
编程语言 时间:
2018-02-11 21:21:37
阅读次数:
141
"题目链接" 题意 对于给定的字符串,求有多少个 不重叠的子串 出现次数 $\geq 2$. 思路 枚举子串长度 $len$,以此作为分界值来对 $height$ 值进行划分。 显然,对于每一组,组内子串具有一个长度为 $len$ 的公共前缀。 至于是否重叠,只需判断 $sa_{max} sa_{m ...
分类:
编程语言 时间:
2018-02-10 23:28:24
阅读次数:
327
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 17079 Accepted: 7553 Case Time Limit: 2000MS Description Farmer John has noti ...
分类:
编程语言 时间:
2018-02-10 14:01:27
阅读次数:
175
我们发现要支持修改操作,所以后缀数组就不适用了 查询两个字符串的lcp有两个很常见的算法, 后缀数组和 二分哈希 所以对于字符串的修改我们用一个splay 来维护, 平衡树每个节点表示的是对应子树的字符串的哈希值。 1 #include <iostream> 2 #include <cstdio> ...
分类:
Web程序 时间:
2018-02-10 11:09:48
阅读次数:
175