![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
r_clover
这个作者很懒,什么都没留下…
展开
-
UVA 11107(后缀数组)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/A) 题意:给定n个字符串,求出最长子串,在超过n/2的串中出现过。 做法:后缀数组+尺取#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#inc原创 2016-02-20 19:54:19 · 263 阅读 · 0 评论 -
POJ 2774(后缀数组)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/I) 题意:寻找字符串A,B的最长相同子串 解法:构造个后缀数组,随便搞一搞就好了。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include原创 2016-02-20 21:28:52 · 230 阅读 · 0 评论 -
POJ 2406(后缀数组/KMP)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/G) 题意:寻找最小循环节 解法:后缀数组,KMP都能做,比较懒,只写了后缀数组的版本。其实还是写KMP比较好。。。#include <cstdio>#include <cstring>#include <iostream>#include <algo原创 2016-02-20 20:35:06 · 336 阅读 · 0 评论 -
POJ 3693(后缀数组)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/H) 题意:给定字符串s,寻找其子串T,使得T循环节数最多 (len(T)/len(T的最小循环节)最大)。 解法:还是枚举循环节长度,那么T的第一个循环节一定包含0,T,2T…其中的一个。时间复杂度就是O(nlgn). 同样套路的题还有UVA 1082原创 2016-02-20 21:18:17 · 297 阅读 · 0 评论 -
URAL 1297(后缀数组/Manacher算法)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/F) 题意:寻找最长回文子串 解法:Manacher裸题,也能用后缀数组#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath原创 2016-02-20 20:29:00 · 249 阅读 · 0 评论 -
SPOJ SUBST1(后缀数组)
这里写链接内容 题意:询问字符串s的子串个数 解法:后缀数组裸题#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <vector>#include <queue>#include <stack>#include <set>#incl原创 2016-02-20 20:18:41 · 284 阅读 · 0 评论 -
POJ 3261(后缀数组)
题意:寻找出现至少K次的最长子串 解法:后缀数组裸题#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <vector>#include <queue>#include <stack>#include <set>#include <ma原创 2016-02-20 20:15:49 · 218 阅读 · 0 评论 -
POJ 1734(后缀数组)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/C) 题意:寻找最长的子串,在s中出现至少两次,子串所有字符可以全部+n/-n。 解法:这种问题统一解法,构造T[i] = S[i] - S[i-1]。#include <cstdio>#include <cstring>#include <iostre原创 2016-02-20 20:08:10 · 207 阅读 · 0 评论 -
UVA 10829(后缀数组)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/B) 题意:有点复杂,大意是在串s中找到形如’UVU’的子串,其中V长度给定,求U的最大长度。 解法:不满足二分的性质,只能枚举U的长度,注意到,当U的长度为L时,U必定包含0,L,2L……这些位置其中之一,因此只需枚举这些位置,时间复杂度为nlgn.#in原创 2016-02-20 20:02:27 · 264 阅读 · 0 评论 -
POJ 3415(后缀数组)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105595#problem/J) 题意:字符串A,B,问A,B有多少相同子串。 解法:后缀数组+线段树,+优先队列也行。我写的是+优先队列的版本。#include <cstdio>#include <cstring>#include <iostream>#include <alg原创 2016-02-20 21:50:44 · 264 阅读 · 0 评论