题意:给你一个字符矩阵,从(1,1)到(n,n)有很多种走法,每一种走法形成一个字符串,问有多少种走法形成的字符串是回文的 分析:(粘贴BC题解) 的是回文串,有人会想到后缀数组自动机马拉车什么的,其实只要求方案数很多,所以我们应该想到动态规划,首先是状态的定义,我们可以想着从(1,1)(1,1)和
分类:
其他好文 时间:
2016-02-02 14:49:10
阅读次数:
185
求出后缀数组后, 对height排序, 从大到小来处理(r相似必定是0~r-1相似), 并查集维护. 复杂度O(NlogN + Nalpha(N))----------------------------------------------------------------------------...
分类:
编程语言 时间:
2016-01-24 23:39:20
阅读次数:
447
题目大意:在原串中找到一个拥有连续相同子串最多的那个子串比如dababababc中的abababab有4个连续的ab,是最多的如果有同样多的输出字典序最小的那个这里用后缀数组解决问题:枚举连续子串的长度l , 那么从当前位置0出发每次递增l,拿 i 和 i+l 开头的后缀求一个前缀和val , 求解...
分类:
编程语言 时间:
2016-01-24 16:54:01
阅读次数:
218
描述我们定义一个字符串的后缀suffix(i)表示从s[i]到s[length(s)]这段子串。后缀数组(Suffixarray)SA[i]中存放着一个排列,满足suffix(sa[i]) 2 #include 3 #include 4 #include 5 #include 6 #include ...
分类:
编程语言 时间:
2016-01-23 23:16:11
阅读次数:
441
/*P1860 后缀数组时间: 1000ms / 空间: 131072KiB / Java类名: Main描述我们定义一个字符串的后缀suffix(i)表示从s[i]到s[length(s)]这段子串。后缀数组(Suffix array)SA[i]中存放着一个排列,满足suffix(sa[i])#i...
分类:
编程语言 时间:
2016-01-22 13:40:41
阅读次数:
306
题目大意:给定n个字符串,求出现在不小于k/2个字符串中的最长子串。二分找对应子串长度的答案,将所有字符串链接成一个长字符串求后缀数组,记录每一个位置本属于第几个字符串,利用height查询的时候,根据记录的位置不断判断是否出现重复的字符串是在同一个字符串内的 1 #include 2 #in...
分类:
其他好文 时间:
2016-01-22 03:08:35
阅读次数:
167
求出后缀数组, 然后二分答案, 对height数组分组检验答案. 时间复杂度O(|S| log|S|)--------------------------------------------------------------------------------#include#include#in...
分类:
编程语言 时间:
2016-01-16 21:03:19
阅读次数:
215
二分查找求出k大串, 然后正反做后缀数组, RMQ求LCP, 时间复杂度O(NlogN+logN)---------------------------------------------------------------------#include#include#include#include...
分类:
编程语言 时间:
2016-01-14 23:43:12
阅读次数:
288
首先求出后缀数组,得到本质不同的子串的个数。然后二分答案,每次先通过后缀数组求出第$mid$小的子串,然后贪心进行检验。检验的时候,从后往前贪心,每次加入一个后缀,如果不能加了,那就划为一段。时间复杂度$O(n\log n)$。#include#include#include#define N 10...
分类:
其他好文 时间:
2016-01-10 21:22:11
阅读次数:
424
枚举$B$串的每个后缀,统计出该后缀所有满足条件的前缀。考虑暴力搜索,设状态$(x,y,z)$表示当前需要考虑$A$从$x$开始的后缀,$B$从$y$开始的后缀,之前部分编辑距离为$z$。那么首先用后缀数组+ST表求出两个后缀的lcp,$x$和$y$都可以向右跳那么多,且不产生任何代价。如果此时匹配...
分类:
其他好文 时间:
2016-01-06 21:39:12
阅读次数:
167