链接: http://codeforces.com/contest/427/problem/D 题意: 给你两个字符串s1,s2,找出最短的子串出现在s1和s2中有且只有一次 题解: 还是把s1和s2连起来,求lcp。首先要知道得是,最短长度一定是sa数组中一定是相连的, 这样就只需要遍历一遍lcp ...
分类:
编程语言 时间:
2017-09-14 16:29:05
阅读次数:
166
链接: http://poj.org/problem?id=3415 题意: 统计A和B长度不小于K的公共子串个数。 题解: 将A和B拼接后,利用单调栈累计分属两者的后缀对应的LCP-K+1即为答案 代码: ...
分类:
编程语言 时间:
2017-09-13 00:18:14
阅读次数:
196
题目链接:hdu 6194 string string string 题意: 给你一个字符串,给你一个k,问你有多少个子串恰好在原串中出现k次。 题解: 后缀数组求出sa后,用height数组的信息去找答案。 每次用k长度的区间去卡height数组,求出该区间的lcp。 该区间的贡献就是ans=lc ...
分类:
编程语言 时间:
2017-09-10 21:48:49
阅读次数:
201
题意:给定一个长度为n的01串,你的任务是依次执行如表所示的m条指令: 1 p c 在第p个字符后插入字符,p = 0表示在整个字符串之前插入2 p 删除第p个字符,后面的字符往前移3 p1 p2反转第p1到第p2个字符4 p1 p2输出从p1开始和p2开始的两个后缀的LCP。 析:对于前三个操作, ...
分类:
其他好文 时间:
2017-08-30 21:48:53
阅读次数:
202
题意 给定一棵 n 个点的树, 每条边上有字符 c . 定义 s[i] 为从 i 到根的所有字符组成的字符串. 求 $\max_{1 \le u < v \le n} [ LCP(s[u], s[v]) + LCS(s[u], s[v]) ]$ . n <= 200000 . 实现1 n log^2 ...
分类:
编程语言 时间:
2017-08-10 15:36:29
阅读次数:
376
http://acm.hdu.edu.cn/showproblem.php?pid=5558 对于每个后缀suffix(i),想要在前面i - 1个suffix中找到一个pos,使得LCP最大。这样做O(n^2) 考虑到对于每一个suffix(i),最长的LCP肯定在和他排名相近的地方取得。 按排名 ...
分类:
编程语言 时间:
2017-08-07 00:12:28
阅读次数:
179
ppp协议PPP协议是一种点到点的链路协议,主要运用于在全双工的链路上进行点到点的数据传输特点:-支持点到点和点到多点-支持同步和异步串行服务-可同时支持多种网络层协议-支持验证-支持地址自动协商,能够远程分配IP地址PPP组成:LCP:链路控制协议,负责物理层和二层的协商(..
分类:
其他好文 时间:
2017-08-05 21:57:58
阅读次数:
177
题目链接: http://codeforces.com/problemset/problem/611/D 题意: 长为n的只有数字组成的字符串(n<=5000),问能分割成多少组数字,这些数字里不含前导0,且数字的大小满足严格单调递增 思路: from: http://blog.csdn.net/q ...
分类:
其他好文 时间:
2017-07-24 11:31:31
阅读次数:
165
思路:枚举第一个字符串的位置,然后枚举最长公共前缀的长度,时间即会下降…… #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<cstring> #i ...
分类:
其他好文 时间:
2017-07-23 18:20:00
阅读次数:
131
后缀数组+单调栈 看了好长时间,最后看了张神的程序才搞懂 意思就是求所有子串*n*(n+1)/2 n是子串出现次数 事实上,lcp可以看成宽度为1,高度为lcp值的长方形,所有lcp放在一起就是一堆长方形放在一起,然后我们就要求对于每个高度对应的长方形的面积乘上一个值 每个长方形可以用单调栈求,也就 ...
分类:
其他好文 时间:
2017-07-16 14:21:33
阅读次数:
300