上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 30 下一页
摘要: CF1437G Death DBMS(AC自动机+树剖) 修改就是直接在建出来的 Fail 树上的对应 \(endpos\) 处修改(对应后文的单点修)。 重点是询问,考虑这个询问对应到 AC 自动机上面是什么:当前串的子串 >当前串每一个前缀的 Fail 树上的祖先。 也就是说就是询问一个点到根的 阅读全文
posted @ 2021-04-19 20:07 __Anchor 阅读(50) 评论(0) 推荐(0) 编辑
摘要: CF710F String Set Queries(AC自动机+二进制分组) 非常牛逼的一道题。根据题意,就是动态的 AC 自动机(动态加字符串,删除字符串,查询所有串在模板串出现次数) 然后询问就是可以预处理每个点作为 \(endpos\) 的次数,对于一个串查其所有前缀的对应到根的边权总和。(直 阅读全文
posted @ 2021-04-19 20:06 __Anchor 阅读(47) 评论(0) 推荐(0) 编辑
摘要: CF1202E You Are Given Some Strings... 题意: 直接拼不行,于是我们直接枚举原串的断点(注意这个技巧)。 然后发现对于每个拼接其实就是 AC 自动机,首先,我们由 Fail 树的性质—————不断跳到当前前缀的后缀的位置,可以得出当前点的后缀串匹配的个数就是 \( 阅读全文
posted @ 2021-04-19 20:04 __Anchor 阅读(51) 评论(0) 推荐(0) 编辑
摘要: P2414 [NOI2011] 阿狸的打字机 首先根据题意模拟可以建出 AC 自动机。 然后我们发现,对于每一个询问 \((x,y)\) ,对于 AC 自动机来说,其实就是在询问在 Fail 树上以 \(x\) 为根的子树内,有多少个 \(y\) 的前缀的标记。 解释一下为什么:因为一个结点 \(x 阅读全文
posted @ 2021-04-19 20:03 __Anchor 阅读(46) 评论(0) 推荐(0) 编辑
摘要: UVA11019 Matrix Matcher 题意: 给定两个字符矩阵 \(A\) 和 \(B\) ,求 \(A\) 中有多少个子矩阵和 \(B\) 完全相同。 解答: 最开始毫无思路,但是我们可以根据 “二维字符矩阵匹配” 转化成 “一维字符串匹配”。 于是我们可以想到先将 \(A\) 和 \( 阅读全文
posted @ 2021-04-19 20:02 __Anchor 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 【模板】AC自动机(加强版) 这道题就是把原本 \(endpos\) 的位置打上的标记换成了串的编号而已,注意处理一下映射即可。 阅读全文
posted @ 2021-04-19 20:01 __Anchor 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 【模板】AC自动机(二次加强版) 【模板】AC自动机(二次加强版) 对于 \(S\) 的每一个前缀,先在对应位置打上标记(因为 AC 自动机 Fail 的性质),然后我们对 Fail 树来一遍拓扑排序,类似树上差分的思路,不停地累计即可(为什么能累计:因为 AC 自动机 Fail 的性质)。 扩展 阅读全文
posted @ 2021-04-19 20:00 __Anchor 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 【模板】AC自动机(二次加强版) 【模板】AC自动机(二次加强版) 对于 \(S\) 的每一个前缀,先在对应位置打上标记(因为 AC 自动机 Fail 的性质),然后我们对 Fail 树来一遍拓扑排序,类似树上差分的思路,不停地累计即可(为什么能累计:因为 AC 自动机 Fail 的性质)。 扩展 阅读全文
posted @ 2021-04-19 19:59 __Anchor 阅读(48) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-04-19 19:58 __Anchor 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-04-19 19:16 __Anchor 阅读(0) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 30 下一页