码迷,mamicode.com
首页 >  
搜索关键字:后缀数组    ( 1340个结果
后缀数组模板
后缀数组的模板。这样说明就非常具体了吧! /* * 后缀数组模板-倍增法 * 用法: * 1、读取字符串转换成int数组。长度为len。下标从0開始 * 2、在字符串末尾加一字典序最小字符,一般为0,并找到最大的字符设为maxa * 3、调用函数da(num,sa,len+1,maxa+1) * 求 ...
分类:编程语言   时间:2017-07-23 21:02:02    阅读次数:163
[spoj DISUBSTR]后缀数组统计不同子串个数
题目链接:https://vjudge.net/contest/70655#problem/C 后缀数组的又一神奇应用。不同子串的个数,实际上就是所有后缀的不同前缀的个数。 考虑所有的后缀按照rank排好了,我们现在已知height,也就是相邻的两个的最长公共前缀是多少。那么不同的子串个数怎么统计呢 ...
分类:编程语言   时间:2017-07-23 10:00:22    阅读次数:172
[poj 3261]后缀数组+滑窗最小值
题目链接:http://poj.org/problem?id=3261 这个是可以交叉的重复串,所以用height就可以了,但是题目说让重复k次以上,也就是直接做一个k-1长度的滑窗最小值,从这些最小值里取最大即可。 这里其实为了节省空间可以先给数字离散化一下,这样就只有20000了,不过不离散化空 ...
分类:编程语言   时间:2017-07-23 00:51:57    阅读次数:226
[poj 1743]后缀数组例题
题目链接:http://poj.org/problem?id=1743 首先,musical theme只与前后位置的增减关系有关,而与绝对的数值无关,因此想到做一次差分。 然后对于差分后的数组,找到最长的出现两次(或两次以上)的一个子串即可。这个如果说两个子串可以交叉的话就好做了,直接取heigh ...
分类:编程语言   时间:2017-07-22 23:52:14    阅读次数:300
POJ 1743 后缀数组
题意:一道论文题,给定一串数组,求最长的重复子串长度,其中这两个子串不重叠,这两个子串可以相差同一个数字。 分析:后一个减前一个数字,那么对于上面说的,可以相差同一个数字就变成了相同数字。问题就变成了,求一个串里面的最长不可重复的子串长度。 但是不再是height数组里面的最大值了,二分答案,将he ...
分类:编程语言   时间:2017-07-22 16:56:01    阅读次数:190
[BZOJ1031][JSOI2007]字符加密Cipher 后缀数组
1031: [JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如下图,可以读作: JSOI07 SOI07J OI07JS ...
分类:编程语言   时间:2017-07-19 14:33:32    阅读次数:182
后缀数组
先明白 基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为 ...
分类:编程语言   时间:2017-07-19 01:12:09    阅读次数:214
hihocoder1415 后缀数组三·重复旋律3
传送门:http://hihocoder.com/problemset/problem/1415 【题解】 考虑求出两串合在一起(中间加分隔符)后缀数组,就是要求任意在两个串中的$i, j$,$\min\{h_k\} (i \leq k \leq j)$的最大值。 考虑$i, j$一定是满足$|i ...
分类:编程语言   时间:2017-07-18 10:10:50    阅读次数:140
bzoj2946
后缀数组+二分 中间加个字符,然后二分判断即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 100010; int n, top, k, tot, m, ans; int a[N], ...
分类:其他好文   时间:2017-07-16 17:22:00    阅读次数:183
123D
后缀数组+单调栈 看了好长时间,最后看了张神的程序才搞懂 意思就是求所有子串*n*(n+1)/2 n是子串出现次数 事实上,lcp可以看成宽度为1,高度为lcp值的长方形,所有lcp放在一起就是一堆长方形放在一起,然后我们就要求对于每个高度对应的长方形的面积乘上一个值 每个长方形可以用单调栈求,也就 ...
分类:其他好文   时间:2017-07-16 14:21:33    阅读次数:300
1340条   上一页 1 ... 45 46 47 48 49 ... 134 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!