捞一些比较模糊的算法

AC自动机

做往年大学生CSP题目的时候,遇到一道比较简单的AC自动机+DP的题,结果调半天过不了,最后发现AC自动机写错了…

首先建trie树,找fail的时候,应该是按照深度(即点对用的字符串长度)从小往大遍历,才满足拓扑序(一般用bfs实现),而我当时直接智障按照点的编号遍历了…

特别地,当字符集不是很大的时候,并且我们需要用到每个点后接每一个字符要跳到那(而不是只需要fail树),可以考虑在找fail的时候同时处理to数组,效率为 O ( n ∗ 字 符 集 大 小 ) O(n*字符集大小) O(n

如果字符集很大,且只需要fail树,找fail的时候就用主席树维护每个点到根的路径上每个字符深度最大的to,效率为 O ( n l o g n ) O(nlogn) O(nlogn)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值