![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串----后缀数组
长沙橘子猫
这个作者很懒,什么都没留下…
展开
-
UVA 11017 Life Forms 后缀数组+二分
UVA 11017题意:给了n个字符串,如果有超过n/2的字符串有公共子串,求最长的公共子串,如果有多组解,按字典序输出思路:可以把这n个字符串连接起来,中间用特殊字符连接,然后构造后缀数组,然后先用二分求出公共子串的最长长度,用height数组和sa数组(sa数组用于判断这部分后缀串包含的字符串数量是否多于n/2)去判定该长度的公共子串是否存在,最后再用height数组把符合条件的公共子串按字典...原创 2018-06-04 21:19:31 · 219 阅读 · 0 评论 -
UVA 12206 Stammering Aliens 后缀数组+二分
UVA 12206题意:输入一个m,接下来输入一个仅包含小写字母的字符串,求字符串中至少出现m次的最长子串,输出两个数据,一个是最长子串长度,一个是这些子串中起始位置的最大值。思路:比较水,很明显建立后缀数组,用二分找最长的子串并且用height数组去判断。#include<cstdio> #include<cstring> #include<algorithm>...原创 2018-06-13 19:40:39 · 247 阅读 · 0 评论 -
2017 icpc青岛站 J. Suffix 后缀数组
J. Suffix update:这是假算法 题意:给你n个字符串,你必须按照输入顺序在每个字符串里取一个后缀子串,然后拼接起来,使得其字典序最小,并输出拼接后的字符串。 思路:咋一看好像对每一个字符串求一次sa数组,找到排行第一的那个后缀串,然后拼接起来就ok,但是实际一想,显然不是,比如aabaa cc,如果按照上面的算法,得到aac,但是答案却是aabaac,因为后面的答案会影响前面...原创 2018-10-24 21:29:42 · 1006 阅读 · 2 评论 -
2016 ACM-ICPC CHINA-Final
C.Mr. Panda and Strips 题意:选择最长的两个子区间或者一个子区间,要求总长度最长,且区间内每个数最多只出现一次。 解法:设dp[i][j]dp[i][j]dp[i][j]为区间[i,j][i, j][i,j]内最长的合法子区间,预处理一下这个dp,我们从小到大枚举iii,然后从iii到1枚举jjj,一开始我们用一个multiset存dp[1][i]dp[1][i]dp[1]...原创 2019-10-06 15:24:17 · 337 阅读 · 0 评论