WC2021 Day2 笔记
概要
主讲教师:金靖
内容:网络流及应用
主讲教师:李建
内容:字符串
网络流概念及学习
最大流 & 费用流
应用
manacher 算法
求字符串的最长回文子串的算法、
本身用处比较特殊化,因此难以有很大的用处,但是 manacher 优化算法利用先前得出的信息和任务本身的性质减少冗余计算的思想很有必要掌握。
过程:
-
在字符串中每个位置插入一个
‘#’
(并不一定是这个字符,只要原来的字符中没有即可),这样就避免了字符串长度奇偶性的讨论。 -
统计半径数组,还有当前最靠右的半径端点 \(R\),这个端点对应的回文中心 \(M\),那么在当前要扩展的位置比 \(R\) 大的时候,直接暴力扩展,否则当前位置的回文半径长度一定等于其关于 \(M\) 的对称位置的回文半径长度。这符合 \(R, M\) 回文半径的定义。然后若能扩展再继续扩展即可。
最小表示法
判断两个字符串是否循环同构。
给定 \(A, B\) 串,假设有解。
从某个起始状态开始,一直到第一个不一样的地方,指向较大字符的指针向后滑动到失配位置的下一个位置即可。
KMP
——虽然模板大家应该都会敲,但是一定要理解是如何想出来的
AC 自动机
在树上跑的 KMP。