Codeforces 432D 后缀自动机 + 起始位置标记

       这道题我用后缀自动机来写,就加个简单的标记数组,记录下串的结束位置,也就是该串的第一次出现位置。然后建 f a i l fail fail 树, d f s dfs dfs 遍历。

       子树代表的就是以当前结点的串为后缀的子串,那么我们从子树那里继承过来的最大 p o s pos pos 也就是该结点的串的最后一次的出现位置,根据题意,我们找同时出现在前缀和后缀的字符串即可(对应的就是第一次位置是 l e n n o w − 1 len_{now}-1 lennow1【前缀】,最后一次出现位置为 l e n s − 1 len_s-1 lens1【后缀】)。

#include
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值