上次看这篇论文还是过年的时候,太懒了,没有把上面例题做完,今天花了一下午,终于把上面的题切完了,其实只写了几道(例8还要wa,拍了半天找不出错),其他的看出来就不想写了。

例一:裸的sa;

例二:可重叠最长重复子串,直接在height中取max就是了。

例三:不可重叠的最长重复子串:二份答案,在每一组中判断最前面与最后面的是否相交。

例四:可重叠最长k重复子串:依旧二份答案,在每一组中判断是否存在k份。

例五:不相同的子串个数:建好sa后,由1...N扫,每次增加max(0,height[i]-height[i-1])。

例六:最长回文子串:先反向搞一遍原串,揉到一起建一个sa;回文串分奇偶,枚举以每一个点或者每两个点之间为中心的回文串的长度,即他们在sa中的lcp。

例七:最多次连续重复子串:考虑如果1==2,2==3,3==4...n-1==n,那么1==2==3==4...所以枚举子串长度,对于长度L,如果lcp(S(1...N),S(L+1...N))==N-L说明该字符串可以由N/L个长度为L的子串得到。

例八:重复次数最多的连续重复子串:枚举子串长度,对于长度L,如果出现次数>=2(至少都是1嘛),则他在(0...L)(L...2L)(2L...3L)....(kl....kl+l)中至少出现一次,所以我们可以计算lcp(S(iL...N),S(iL+L...N))来算出长为L的出现了多少次=lcp(S(iL...N)/L+1。但这还有一点问题,我们没有考虑(iL-L...iL)这段区间的影响,他可能使答案加一(也最多加一),所以我们考虑(iL-L....iL)中后(L-lcp(S(iL...N),S(iL+L...N))%L)个与(iL....iL+L)中后(L-lcp(S(iL...N),S(iL+L...N))%L)个是否相等,依旧使用sa判断,如果想等ans++;

例九:两个串的最长公共子串:连到一起建sa,在不在同一个串中取max{height[]};

例十:两个串的长度不小于k的公共子串的个数:令两个串分别为A,B。连起来建sa,分组,在每一组中看sigma{lcp()-K+1},可以用单调队列维护,因为只有两种情况:前面属于A,后面的属于B,前面的属于B,后面的属于A,他们一样的。只考虑前面属于A,后面的属于B的。维护一个递增的单调队列,记录A的每一个后缀对答案的贡献,即sigma(lcp()-K+1),后缀的个数,该后缀到此时的lcp。新加一个就把前面比他lcp大的合到一起,这样是O(N)的,总复杂度是O(Nlogn)的。

例十一:不小于k个字符串中的最长公共子串:类似于两个字符串,只是判断是否存在k个。

例十二:在每个字符串中出现不相交的两次的最长公共子串:二分长度,在每一组中记录每一个字符串出现的最早,最晚时间,看是否相交。

例十三:出现或者翻转出现在每个字符串中的最长子串:一样的题,先翻转一遍,然后就是例十二了。

感触:

1.任何子串都是某一个后缀的前缀。

2.连接,分组与二分是常用手段。

《后缀数组——处理字符串的有力工具》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 参考灵敏度_和平精英2021灵敏度分享码一览 S11灵敏度压枪目前最稳调整攻略
  2. intellij idea 2018 license 可用无废话
  3. 计算机科学速成视频35,计算机科学速成课30:万维网【视频】
  4. 欢迎来到开源的世界!
  5. px是什么意思计算机二级,px是什么意思?照片中的px是什么的缩写?
  6. 汇总:一些不错的使用频率比较高的JS函数
  7. 高通qca9565网卡驱动_修改注册表让Surface Go的无线网卡支持频段选择
  8. 95-50-040-java.nio.channels-NIO-NIO之Buffer(缓冲区)
  9. Gym - 101128F Landscaping(网络流)
  10. 5G 和 IoT 究竟意味着什么?
  11. 计算机辅助制图cad论文,cad论文模板
  12. 十折交叉验证和混淆矩阵
  13. Ubuntu 12.04 安装离线词典
  14. 从大数据+AI 谈谈概念与场景
  15. 人工智能/数据科学比赛汇总 2019.8
  16. 教孩子学编程 python语言版_教孩子学编程 PYTHON语言版 PDF_IT教程网
  17. WiFi穿墙手册:解读天线、dbi、发射功率和无线信号的关系
  18. python批量放大图片
  19. 2022无线WIFI路由器的不常用功能整理(带USB接口,可插手机卡)适合短期出差、拉有线网络不方便等。
  20. spring导入第三方资源

热门文章

  1. android 源码管理工具repo
  2. 麒麟v10关闭防火墙linux命令,Vue 银河麒麟Kylin V10 B06-移植指导书
  3. 分群思维(四)基于KMeans聚类的广告效果分析
  4. JRE,JDK,JVM
  5. 怎么使用树莓派总要了解一点它的软硬件吧。什么模块有什么用,需要什么准备才能安全的看到树莓派的开机界面
  6. 巫师3怎么释放替换法印_巫师3新手怎么用法印 巫师3新手法印用法-游侠网
  7. 百无聊赖......
  8. 120年奥运会数据分析和可视化
  9. php 定時自動執行,php定时自动运行thinkphp方法(含停止)
  10. Android自定义View绘制闹钟