2022.7.31 闲话

偷偷更新了一波知识落差限制想象力(link,密码是学校提高 OJ 的 IP),哈哈 .

完了闲话没题材了,水一波吧 .

字符串匹配 Part I

Problem 1

给两个字符串 \(s_1\)\(s_2\),求 \(s_2\)\(s_1\) 中所有出现的位置 .

KMP 板子


Problem 2

给一个文本串 \(S\)\(n\) 个模式串 \(T_{1 \dots n}\),请你分别求出每个模式串 \(T_i\)\(S\) 中出现的次数 .

AC 自动机板子(fail 树上子树大小).

Exercise 1

维护一棵树 \(\mathcal T\),每个点 \(u\) 上挂着一个字符串 \(s_u\) .

\(\displaystyle S(u)=\sum_{v\in\operatorname{subtree}(u)}s_v\),多次询问,每次给出一个点 \(u\) 和一个串串 \(S_0\),询问 \(S(u)\) 中所有字符串在 \(S_0\) 中的出现次数之和 .

强制在线 .

Exercise 2

\(S_0=\varnothing\),要求支持以下操作:

  • 1 hoc s,令 \(S_i=S_{hoc}\cup\{s\}\),其中 \(s\) 是字符串(保证操作前 \(s\notin S_{hoc}\)) .
  • 2 hoc s,令 \(S_i=S_{hoc}\),并查询 \(S_i\) 中的所有字符串在给出的字符串 \(s\) 中出现的次数之和 .

Problem 3
给出文本串 \(s\),两种操作:

  • 单点修改
  • 给一个区间 \([l,r]\) 和一个串串 \(t\),求 \(t\)\(s[l:r]\) 中出现了多少次 .

可以分块 SAM,根分,或者 bitset 艹过去 .


Problem 4

给一个带通配符 *? 的字符串,多次给出字符串,问是否能匹配 .

平凡 DP,然后 Hash / ACAM 维护 .


映射表:

  • Problem 1:洛谷 P3375
  • Problem 2:洛谷 P5357
  • Exercise 1:[URA] AC Automaton on Tree(知识落差限制想象力)
  • Exercise 2:洛谷 P8451
  • Problem 3:CF914F
  • Problem 4:P3167

因为要补模拟赛 T2 所以这里先写一部分 .

posted @ 2022-07-31 22:07  Jijidawang  阅读(79)  评论(1编辑  收藏  举报
😅​