字符串
-
难点:理解算法过程
-
二分 + 哈希 可以
完成 Manacher 和 exKMP
Manacher
P5446
- R 是 S 的一个前缀
- R[1, i] 的后缀的最大回文半径为 r
- 一次翻折:i + r == n 成立
- 多次翻折:目标串合法 且 目标串是一个回文串
- 题解2
exKMP
表示 和 的最长公共前缀- 流程:见视频
P7114
-
固定 AB 的长度, 随着 i 增加, F(C) 只有两种情况
- C 的前缀中有 2n 个 AB, F(C) = F(i, n)
- C 的前缀中有 2n + 1 个 AB, F(C) = F(1, n)
-
题解1具体实现?
-
题解3
KMP
-
next 数组:最长的【后缀 == 前缀】的长度
P3435
- 最长周期 = i - 最小 next
- 画图理解
P2375
- num :长度 <=
的 next 的个数 - 重看 (题解1已掌握)
P5829 失配树
-
i <- next[i] 的关系构成的树
-
为什么是一棵树
- i > next[i]
-
Lca
HDU 7138
- 条件1:[1, x] 是 S 的 border
- 条件2:长度 > i / 2,
- 建失配树,条件 1 自然满足
- 条件 2 在树上Dfs
KMP自动机
- 自动机:为给他一个字符串,他能实现一个功能
- 构建(PPT)
- 代码:
Trie
P2922
- 关系
- S 是 T 的前缀
- T 是 S 的前缀
- 字典树
AC自动机
P5357
P2414
P3041
P2444
- 以上重看
选讲
P5329
- 通用方法
- 如果能
判断 si, sj的大小, 就可以重载比较函数, sort - 设 i < j, k = Lcp
- 转化为 s[i + k + 1] 和 s[j + k] 的大小关系
- ???
ICPC
- 暴力:
DP - 状态2维, 转移
- ???
P3426
二分一个前缀作为印章
O(n) Check (好像没法O(n) ?)
-
f(i) 为印出前缀 i 的最小印章长度
-
印章既是前缀,又是后缀(类似border)
-
中间不确定
-
两个结论
- f(i) = i 或 next(i) (??不能是next[next[i]]?)
-
???重看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!