随笔分类 -  *字符串---后缀数组

摘要:Power Strings POJ - 2406 kmp可以过的 学了sa就用sa搞一下,,一直TLE... 好像要用另外一种方法实现,还没学=_= 先放上超时的代码吧 1 //#include <bits/stdc++.h> 2 #include <iostream> 3 #include <cs 阅读全文
posted @ 2017-10-14 17:22 yijiull 阅读(147) 评论(0) 推荐(0)
摘要:Life Forms POJ - 3294 题意:给出n个字符串,问出现次数大于n/2的最长的子串(如有多个则都要) 用特殊字符连接字符串,后缀数组搞一下. 然后二分长度mid,然后统计次数的时候判断来自哪个字符串,不要重复统计,满足条件就加到答案里去。 高级数据结构p385有更优的,,有空再看 1 阅读全文
posted @ 2017-09-15 15:10 yijiull 阅读(219) 评论(0) 推荐(0)
摘要:Musical Theme POJ - 1743 题意:求一段旋律的最长主旋律(不可重叠)。 对给出的旋律做差,求后缀数组。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 阅读全文
posted @ 2017-09-14 17:08 yijiull 阅读(192) 评论(0) 推荐(0)
摘要:Long Long Message POJ - 2774 题意:求两个串的最长公共字串。 用特殊符号连接两个字符串,后缀数组。 枚举height,如果sa[i]和sa[i-1]分别属于不同的串,则更新最大值。 1 #include <iostream> 2 #include <cstdio> 3 # 阅读全文
posted @ 2017-09-14 14:04 yijiull 阅读(229) 评论(0) 推荐(0)
摘要:Milk Patterns POJ - 3261 第一道后缀数组,,有点蒙逼=_= update: 2018-01-27 题意:求至少出现k次的最长子串的长度。 可以二分长度mid,看是否能出现k次。 如何判断出现k次? 由后缀数组的height数组, 将height数组按顺序分组,每一组内的最长公 阅读全文
posted @ 2017-09-13 22:31 yijiull 阅读(204) 评论(0) 推荐(0)