字符串

字符串菜菜,把学习过程中的字符串好题都放在这里。

本题单包含的内容:字符串 hash、最小表示法、manacher、KMP 和 exKMP、trie 和 AC 自动机的简单应用。适用人群:提高+/省选-

这题单怎么五颜六色的,保证了主要难度为蓝到紫,请放心食用。

关于学习路线。可以按照如下顺序刷模板,然后在刷模板的过程中穿插一些例题。

下面是例题推荐,难度不一定递增但大致按照难度排序,请自行食用,难的题可以等理解深刻了再回来做

Manacher

Manacher 的精髓在于重复利用已经计算过的信息,后面的 KMP/exKMP 与其其实是异曲同工之妙。

首先肯定是需要打完模板的。下面的这些题有些可能有点巧妙,需要多思考思考。

KMP/Hash/exKMP

这些题的解法有些多变,有的既可以 KMP 又可以 Hash 做。

首先是 KMP 的例题,打完板子之后首先要会的就是 KMP 怎么求字符串的周期,对于深入理解 KMP 有帮助,然后 fail 树等相关也肯定是需要掌握的

Trie/AC 自动机

这里不考虑 01-Trie,下面是一些用到 Trie 了的的例题

然后是 AC 自动机,AC 自动机一是可以与 DP 结合,因为 Trie 的一个节点就是一个很好的 dp 状态,然后转移也比较方便;二是可以结合 fail 树然后套上其它的数据结构。确保先刷完三个模板以及学习完对应的数据结构(dfs 序,树链剖分等)。


  1. P3370 - 【模板】字符串哈希
  2. P1368 - 工艺
  3. P3805 - 【模板】Manacher
  4. P3375 - 【模板】KMP
  5. P5410 - 【模板】扩展 KMP / exKMP(Z 函数)
  6. P2580 - 于是他错误的点名开始了
  7. P3808 - AC 自动机(简单版)
  8. P3796 - AC 自动机(简单版 II)
  9. P5357 - 【模板】AC 自动机
  10. P1659 - [国家集训队] 拉拉队排练
  11. UVA11475 - Extend to Palindrome
  12. P6216 - 回文匹配
  13. P4555 - [国家集训队] 最长双回文串
  14. P4287 - [SHOI2011] 双倍回文
  15. P5446 - [THUPC 2018] 绿绿和串串
  16. P3501 - [POI 2010] ANT-Antisymmetry
  17. CF126B - Password
  18. P4391 - [BalticOI 2009] Radio Transmission 无线传输
  19. UVA10298 - Power Strings
  20. P3435 - [POI 2006] OKR-Periods of Words
  21. UVA11022 - String Factoring
  22. CF526D - Om Nom and Necklace
  23. P4824 - [USACO15FEB] Censoring S
  24. P2375 - [NOI2014] 动物园
  25. P5829 - 【模板】失配树
  26. CF1200E - Compress Words
  27. P7114 - [NOIP2020] 字符串匹配
  28. P3426 - [POI 2005] SZA-Template
  29. CF808G - Anthem of Berland
  30. P3193 - [HNOI2008] GT考试
  31. P4503 - [CTSC2014] 企鹅 QQ
  32. P3538 - [POI 2012] OKR-A Horrible Poem
  33. P4036 - [JSOI2008] 火星人
  34. CF1466G - Song of the Sirens
  35. SP4033 - PHONELST - Phone List
  36. UVA1401 - Remember the Word
  37. UVA11732 - "strcmp()" Anyone?
  38. P3966 - [TJOI2013] 单词
  39. P3121 - [USACO15FEB] Censoring G
  40. P3041 - [USACO12JAN] Video Game G
  41. P4052 - [JSOI2007] 文本生成器
  42. P3311 - [SDOI2014] 数数
  43. P2414 - [NOI2011] 阿狸的打字机
  44. CF163E - e-Government
  45. CF1207G - Indie Album
  46. P2444 - [POI 2000 R1] 病毒
  47. CF1202E - You Are Given Some Strings...
  48. P2292 - [HNOI2004] L 语言
  49. P5840 - [COCI 2014/2015 #5] Divljak
  50. CF696D - Legen...