• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
AC_Artist.zig_zag
然而我依然在补题、
博客园    首页    新随笔    联系   管理    订阅  订阅
2013年4月7日
bzoj 2434 阿狸的打字机
摘要: 好久没写AC自动机了,学了SAM以后发现对AC自动机的理解也加深了,其实它们的精髓都是用后缀的前缀来处理字串(后缀数组也是)。 那么这个题光会写AC自动机可不行,还要会处理询问。这个题询问第x个串在第y个串中出现的次数,于是我们可以想到把所有串建AC自动机,然后利用fail指针的性质:沿着fail指针上溯,所经过的都是以当前节点为右端点的字串,也就是说fail[i]代表的字串在i中一定出现过。所以我们把fail边反向,出现了一颗fail树,那么如果一个串在P位置上出现了,那么在它的所有儿子中一定也出现了,于是可以用树状数组维护这棵fail树的dfs序来维护答案。 方法是:按照一开始建A... 阅读全文
posted @ 2013-04-07 22:41 Zig_zag 阅读(305) 评论(0) 推荐(0)
后缀自动机入门
摘要: 前几天被substr虐了,于是怒而学后缀自动机,结果看了一下午没看懂,囧.......昨天总算是看出点端倪了,发现写起来还是挺短的,起码比后缀数组好写多了~!原理什么的CLJ大神的课件里讲的已经很细致了,比网上的一些讲的都要透彻,建议初次学习的话还是去看这个。其实一个后缀自动机里的点代表的不光是它自己,还包括所有以它为右端点的字串(曾经的后缀),那么后缀自动机上就可以处理一些字串以及后缀的问题了。它的时空复杂度都是O(n)的,所以可以非常有效地解决一些字符串问题。这个图可以非常直观地表现后缀自动机的神奇之处:1.0 NSUBSTR 这个题用后缀自动机做真是一目了然啊,写完才60行....... 阅读全文
posted @ 2013-04-07 08:20 Zig_zag 阅读(1718) 评论(0) 推荐(0)
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3