![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
v5zsq
新的一天,新的不会
展开
-
POJ 2774 Long Long Message(后缀数组)
Description 求两个串的最长公共子串长度 Input 两个长度不超过100000的字符串 Output 输出这两个串的最长公共子串长度 Sample Input yeshowmuchiloveyoumydearmotherreallyicannotbelieveit yeaphowmuchiloveyoumydearmother Sample Output 27 So原创 2016-05-03 11:27:33 · 639 阅读 · 0 评论 -
POJ 3581 Sequence(后缀数组)
Description 将一个序列分成非空的三部分,将每部分翻转后组合成一个新的序列,输出这样操作得到的序列中字典序最小的序列 Input 第一行为一整数n表示序列长度,之后n行每行一个整数表示该序列(n<=200000) Output 输出这样操作得到的序列中字典序最小的序列 Sample Input 5 10 1 2 3 4 Sample Output 1 10原创 2016-05-03 15:11:54 · 687 阅读 · 0 评论 -
POJ 3693 Maximum repetition substring(后缀数组+ST)
Description 给出一个字符串,求这个字符串的一个子串,使得其完全由最小循环节组成且循环次数最多,如果有多组解则输出字典序最小的 Input 多组用例,每组用例占一行为一行长度不超过100000的字符串,以#结束输入 Output 对于每组用例,输出满足条件的字典序最小的子串 Sample Input ccabababc daabbccaa # Sample Output原创 2016-05-03 15:28:02 · 498 阅读 · 0 评论 -
HDU 4622 Reincarnation(后缀数组+ST)
Description 给出一个只由小写字母组成的字符串,有m次查询,每次查询区间[l,r]这一部分子串所含有的不同子串的数量 Input 第一行为一整数T(T<=5)表示用例组数,每组用例第一行为一长度不超过2000的字符串,然后是一整数m表示查询数量(m<=10000),之后m行每行两个整数l和r表示查询区间(1<=l<=r<=n) Output 对于每次查询,输出查询结果 Samp原创 2016-05-03 15:42:41 · 688 阅读 · 0 评论 -
HDU 4029 Distinct Sub-matrix(后缀数组+hash)
Description 给出一个只由大写字母组成的矩阵,求不同子矩阵个数 Input 第一行一整数T表示用例组数,每组用例第一行为两个整数nn和m表示矩阵行列数,之后为一个只由大写字母组成的n*m矩阵(1<=n,m<=128) Output 输出这个矩阵不同的子矩阵个数 Sample Input 2 2 2 AB BA 3 3 ABA BAA AAA Sample Ou原创 2016-05-05 22:23:31 · 619 阅读 · 0 评论 -
HDU 4080 Stammering Aliens(后缀数组+二分)
Description 给出一个字符串,求这个字符串中重复次数不少于m次的最长字串长度以及这个子串在原串中最后一次出现的位置 Input 多组用例,每组用例第一行为一整数m,第二行为一长度不超过40000的字符串,以m=0结束输入 Output 输出两个整数,第一个整数为在这个字符串中重复次数不少于m次的最长子串的长度,第二个整数是这个子串在原串中最后一次出现的位置,如果不存在这样的子串则原创 2016-05-05 22:23:41 · 829 阅读 · 0 评论 -
HDU 5769 Substring(后缀数组)
Description 给出一个字符串s以及一个字符x,求s的所有的含字符x的不同子串数量 Input 第一行一整数T表示用例组数,每组用例输入一个字符x以及一个字符串s (x是一个小写字母,s全部由小写字母组成,T<=30,|s|<=10^5) Output 对于每组用例,输出s的所有含字符x的不用子串数量 Sample Input 2 a abc b bbb S原创 2016-08-10 12:58:13 · 420 阅读 · 0 评论 -
HDU 5782 Cycle(后缀数组+bitset)
Description 给定两个长度相等的字符串a和b,问他们的第 i个前缀是否循环相等,循环相等的定义是,两个长度相等的字符串,其中一个字符串能通过循环移位得到另一个 Input 多组用例,每组用例输入两个长度相等的字符串(串长不超过10000) Output 对于每组用例,输出n个01值,第i个值表示两个串长度为i的前缀是否循环相等,相等输出1,不相等输出0 Sample Input原创 2016-08-26 09:45:22 · 510 阅读 · 0 评论 -
CodeForces 427 D.Match & Catch(后缀数组)
Description 给出两个串s1和s2,要求找到一个最短的s1和s2的公共子串使得该子串在s1和s2中均只出现过一次 Input 两个字符串s1和s2(|s1|,|s2|<=5000) Output 输出满足条件的最短子串的长度,如果不存在这样的子串则输出-1 Sample Input apple pepperoni Sample Output 2 Solution 把原创 2017-07-26 23:00:30 · 462 阅读 · 0 评论 -
HDU 6194 string string string(后缀数组+ST)
Description给出一个字符串sss,定义sss的子串中恰好出现kkk次的子串为重要子串,问sss的重要子串个数Input第一行一整数TTT表示用例组数,每组用例首先输入一整数kkk,之后输入一字符串sss (1≤T≤100,k≥1,|s|≤105)(1≤T≤100,k≥1,|s|≤105)(1\le T\le 100,k\ge 1,|s|\le 10^5)Output...原创 2018-02-14 13:22:36 · 301 阅读 · 0 评论 -
CSU 1632 Repeated Substrings(后缀数组)
Description 求字符串中所有出现至少2次的子串个数 Input 第一行为一整数T(T<=10)表示用例组数,每组用例占一行为一个长度不超过100000的字符串 Output 对于每组用例,输出该串中所有出现至少两次的子串个数 Sample Input 3 aabaab aaaaa AaAaA Sample Output 5 4 5 Solution 每个he原创 2016-05-03 14:58:37 · 497 阅读 · 0 评论 -
URAL 1297 Palindrome(后缀数组)
Description 给出一个字符串,求最长回文子串长度 Input 一个长度不超过1000的字符串 Output 输出这个串的最长回文子串,如果有多种满足条件的解则输出首字符靠前的 Sample Input ThesampletextthatcouldbereadedthesameinbothordersArozaupalanalapuazorA Sample Output A原创 2016-05-03 14:50:24 · 656 阅读 · 0 评论 -
POJ 1743 Musical Theme(后缀数组+二分)
Description 给出一个数字串,求这个数字串中长度最少为5的最长重复子串的长度(重复字串不需要完全相同但不能有重叠,只要某个字串同时加减一个相同的值后变为另一个字串即可) Input 多组用例,每组用例首先输入一整数n(n<=20000)表示数字串长度,之后输入n个整数(介于0~88之间)表示该数字串,以n=0结束输入 Output 输出该数字串中长度至少为5的最长重复子串的长度,原创 2016-05-03 11:37:04 · 427 阅读 · 0 评论 -
POJ 3450 Corporate Identity(后缀数组+二分)
Description 求n个字符串的最长公共子串长度 Input 多组用例,每组用例第一行为字符串个数n(2<=n<=4000),之后n行每行一个字符串,每个串串长不超过200,以n=0结束输入 Output 对于每组用例,输出这n个字符串的最长公共子串长度 Sample Input 3 aabbaabb abbababb bbbbbabb 2 xyz abc 0 S原创 2016-05-03 12:56:46 · 911 阅读 · 0 评论 -
POJ 3415 Common Substrings(后缀数组+单调栈)
Description 给出两个串a和b,求a和b的长度不小于k的公共子串数量 Input 多组用例,每组用例第一行为一整数k,之后为两个字符串表示a和b,两个串的串长不超过10^5,k不超过两串串长,以k=0结束输入 Output 对于每组用例,输出a和b的长度不小于k的公共子串数量 Sample Input 2 aababaa abaabaa 1 xx xx 0 Sa原创 2016-05-03 13:29:44 · 549 阅读 · 0 评论 -
POJ 3294 Life Forms(后缀数组+二分)
Description 给出n个串,求至少出现在n/2+1个串中的最长公共子串 Input 多组用例,每组用例第一行为一整数n(1<=n<=100)表示串的数量,之后n行为n个串长不超过1000的字符串,以n=0结束输入 Output 对于每组用例,输出所有满足条件的最长公共子串(字典序从小到大输出),如果不存在满足条件的子串则输出?,相邻两组输出间用一空行隔开 Sample Input原创 2016-05-03 13:39:09 · 823 阅读 · 0 评论 -
CSU 1608 Particle Collider(后缀数组+二分)
Description 给出n个串,求所有满足条件的子串,使得该子串和其反串出现在超过n/2个串中 Input 多组用例,每组用例第一行为一整数n表示串的数量(n<=10),之后n行每行一个长度不超过1000的字符串,以文件尾结束输入 Output 对于每组用例,输出所有满足条件的子串,由于一个子串如果满足条件那么其反串也满足条件,所以只输出正串反串中字典序小的那个,所有答案也按字典序从小原创 2016-05-03 14:00:20 · 570 阅读 · 0 评论 -
SPOJ 220 Relevant Phrases of Annihilation(后缀数组+二分)
Description 给定n个字符串,求在每个字符串中至少出现两次且不重叠的最长子串的长度 Input 第一行为一整数T(T<=10)表示用例组数,每组用例第一行为一整数n(n<=10)表示串的数量,之后n行每行为一个长度不超过10000字符串 Output 输出在每个字符串中至少出现两次且不重叠的最长子串的长度 Sample Input 1 4 abbabba dabddka原创 2016-05-03 14:17:57 · 553 阅读 · 0 评论 -
POJ 3261 Milk Patterns(后缀数组+二分)
Description 给出一个字符串,求至少出现k次的可重叠的最长子串的长度 Input 第一行为两个整数n和k(1<=n<=20000,2<=k<=n),之后为n个介于1~1000000的整数表示该数字串 Output 输出一个整数表示在该串中至少出现k次的可重叠的最长子串的长度 Sample Input 8 2 1 2 3 2 3 2 3 1 Sample Ou原创 2016-05-03 14:27:16 · 779 阅读 · 0 评论 -
SPOJ 694 Distinct Substrings(后缀数组)
Description 给出一个字符串,求这个串不同的子串个数 Input 第一行为一整数T(T<=20)表示用例组数,每组用例占一行为一个长度不超过1000的字符串 Output 对于每组用例,输出这个串的不同子串个数 Sample Input 2 CCCCC ABABA Sample Output 5 9 Solution 不同子串数量=n*(n+1)-sum(hei原创 2016-05-03 14:38:57 · 405 阅读 · 0 评论 -
CSU 1656 Paper of FlyBrother(后缀数组)
Description 给出一个串,求这个串的不同子串的数量 Input 多组用例,每组用例占一行为一长度不超过100000的字符串,以文件尾结束输入 Output 对于每组用例,输出该串的不同子串的数量 Sample Input a aab Sample Output 1 5 Solution 不同子串数量=n*(n+1)-sum(height[i]),i=2,3,…,n原创 2016-05-03 14:43:03 · 405 阅读 · 0 评论 -
Newcoder 139 I.Substring(后缀数组+组合数学)
Description两个字符串u1...uku1...uku_1...u_k和v1...vlv1...vlv_1...v_l是同构的当且仅当k=lk=lk=l且存在一个单射ggg使得ui=g(vi),1≤i≤kui=g(vi),1≤i≤ku_i=g(v_i),1\le i\le k. 给出一字符串s1...sns1...sns_1...s_n,该字符串的n(n+1)2n(n+1)2\frac...原创 2018-09-14 17:02:40 · 179 阅读 · 0 评论