1 条题解
-
0
自动搬运
来自洛谷,原作者为

Falashiro
丝之歌什么时候出搬运于
2025-08-24 23:07:39,当前版本为作者最后更新于2024-12-24 00:08:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
若要求风景序列 A 在风景序列 B 中的出现次数,则可以每次找到 B 中出现的第一个 A 并在它之后分割,正确性显然。
对于一个序列长度 ,考虑以 的时间复杂度求出所有 的询问的答案。
将询问离线,对于所有 的询问,对询问的序列做哈希,并将其哈希值存入哈希表中。我们 dfs 原树,在 dfs 过程中设 表示第 次的询问的序列在 号点到当前节点的路径上的出现次数, 表示上一次 变化的节点。对于一个节点,可以求出以它为末尾的长度为 的序列的哈希值,若与第 次询问的序列的哈希值相同,则可以根据 与当前节点的深度差判断是否可以更新 ,若 更新,则同时更新 与询问答案。dfs 回溯时,需同时回溯 与 。于是我们得到了一个时间复杂度为 的处理相同长度的询问的算法。
令 ,注意到不同的询问长度至多为 级别,于是对于每个出现的长度执行以上算法即可。时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 11051
- 时间
- 4000ms
- 内存
- 64MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者