CF710F String Set Queries

CF710F String Set Queries(AC自动机+二进制分组)

非常牛逼的一道题。根据题意,就是动态的 AC 自动机(动态加字符串,删除字符串,查询所有串在模板串出现次数)

然后询问就是可以预处理每个点作为 \(endpos\) 的次数,对于一个串查其所有前缀的对应到根的边权总和。(直接预处理)

重点是怎么动态搞。

对操作二进制分组,也就是说,维护一堆树,大小分别是 \(2^{k_1},2^{k_2},...,2^{k^n}\) (大小即这个树是由前几个操作来的),然后每次二进制合并就是。

然后每次询问最多跑 \(logn\) 个树,每个串最多合并 \(logn\) 次,复杂度得到保证。

最后就是注意一下 Trie 树要单独建。

具体见题解。

posted @ 2021-04-19 20:06  __Anchor  阅读(47)  评论(0编辑  收藏  举报