后缀数组
Ostmbh
731391331
展开
-
[HZOI 2015] Glass Beads
题目描述】给定长度为n(n【输入格式】第一行是串的长度,第二行是字符串。【输出格式】串的最小表示。【样例输入】10helloworld【样例输出】dhelloworl【题目来源】HZOI2015 改编自poj1509题解:先将字符串*2然后求出新字符串的后缀数组 找一个在后缀原创 2017-05-29 21:04:36 · 352 阅读 · 0 评论 -
[POJ3415]公共子串
字符串T的一个子串定义为:T(i,k)=T[i]T[i+1]...T[i+k-1],1给出两个字符串A,B,一个整数K,我们定义S是一个由三元组构成的集合:S={(i,j,k)|k>=K,A(i,k)=B(j,k)}。你需要对于A,B,K,给出|S|的值。【输入格式】输入包含多组数据。每组数据的第一行是一个正整数K,接下来是两行,分别是字符串A和B。输入结束标志为K=0原创 2017-03-03 21:21:14 · 427 阅读 · 0 评论 -
[HAOI2016]找相同子串
【题目描述】给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两个子串中有一个位置不同。【输入格式】两行,两个字符串s1,s2,长度分别为n1,n2。【输出格式】输出一个整数表示答案。【样例输入】aabbbbaa【样例输出】10【数据范围】对于20%的数据,满足1≤n1,n2≤500;对于40%的数原创 2017-02-28 23:42:11 · 648 阅读 · 0 评论 -
[POI2000] 最长公共子串
给出几个由小写字母构成的单词,求它们最长的公共子串的长度。任务从文件中读入单词计算最长公共子串的长度输出结果到文件输入文件的第一行是整数 n,1输出:仅一行,一个整数,最长公共子串的长度。样例输入:3abcbbcaacbc样例输出:2把字符串连在一起后缀数组预处理,然后二分答案,检验:将height代码:#include原创 2017-02-28 11:08:06 · 675 阅读 · 0 评论 -
SPOJ705不同的子串
【题目描述】给定一个字符串,计算其不同的子串个数。【输入格式】一行一个仅包含大写字母的字符串,长度【输出格式】一行一个正整数,即不同的子串个数。【样例输入】ABABA【样例输出】9可以用后缀数组求出每个后缀的height,然后由于height为当前后缀与前边后缀最长公共前缀的最小值,所以当前后缀的不同子串数为该后缀长度减去该后缀的heght,最后求和即可原创 2017-02-27 19:37:28 · 485 阅读 · 0 评论 -
[NOI2015]品酒大会
传送门 先对这个字符串求一下SA 考虑SA数组中第i位,暴力计算贡献就是向后枚举,然后计算枚举到的位与第i位之间height的最小值,然后对r==min(height)的贡献就是这一对数并且可以用他们的权值之积可以更新最大值 考虑height较大的是不会对height较小的有贡献,就可以从height大的到height小的依次计算 可以保证height较大的形成的集合通过当前height连在原创 2017-12-19 22:31:11 · 384 阅读 · 0 评论 -
bzoj1031: [JSOI2007]字符加密Cipher
Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如下图,可以读作: JSOI07 SOI07J OI07JS I07JSO 07JSOI 7JSOI0把它们按照字符串的大小排序:07JSOI 7JSOI0 I07JSO JSOI07原创 2017-12-04 10:06:17 · 261 阅读 · 0 评论 -
bzoj3172: [Tjoi2013]单词
Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,NOutput输出N个整数,第i行的数字表示第i个单词在文章中出现了多少次。Sample Input3原创 2017-12-07 07:06:03 · 400 阅读 · 0 评论