总结一下自己的心得体会,不讲算法。。 AC自动机 AC自动机即Trie+KMP?是解决多模式串匹配的一种算法 它的构造方式如下: 注意:在一般的匹配问题中,我们会把trie树补为trie图,虽然这样会极大的降低匹配时间,但是当利用的$fail$树中各节点相对位置(例如lca)的时候不建议这么做 性质 ...
分类:
其他好文 时间:
2018-07-02 18:44:23
阅读次数:
179
原文地址:北大POJ题库使用指南 北大ACM题分类主流算法: 1、搜索 //回溯 2、DP(动态规划)//记忆化搜索 3、贪心 4、图论 //最短路径、最小生成树、网络流 5、数论 //组合数学(排列组合)、递推关系、质因数法 6、计算几何 //凸壳、同等安置矩形的并的面积与周长、凸包计算问题 8、 ...
分类:
其他好文 时间:
2018-04-06 21:21:55
阅读次数:
171
好久都没敲过KMP和AC自动机了。以前只会敲个kuangbin牌板子套题。现在重新写了自己的板子加深了印象。并且刷了一些题来增加自己的理解。 KMP网上教程很多,但我的建议还是先看AC自动机(Trie图)的构造后再去理解。板子的话大家大同小异。 而AC自动机的构造则是推荐王贇的《Trie图的构建、活 ...
分类:
其他好文 时间:
2018-03-30 14:12:49
阅读次数:
198
AC自动机+矩阵乘法 套路$dp$,也就是从$root$开始走n步不经过危险节点 这不就是经典的倍增$floyd$吗,trie图是有向图 AC自动机真是个奇怪的东西,不能识别的子串都属于根节点 #include <cstdio> #include <cstring> #include <algori ...
分类:
其他好文 时间:
2018-02-27 21:20:57
阅读次数:
202
AC自动机 Trie+Fail指针,通常配合动归出现在比较明显的字符串题中。 几个注意点: 1.bfs建图时先将所有fail指针指向根(0号节点),一开始应将根的所有儿子放入队列而不是根本身。 2.模板使用的方法是建立trie图而不是树,注意处理。 3.fail指针构成一棵树(显然),解题时常利用这 ...
分类:
其他好文 时间:
2018-01-02 19:59:01
阅读次数:
151
爬虫程序的工作是从一个种子链接的集合开始。把种子URL集合作为参数传递给网络爬虫。爬虫先把这些初始的URL放入URL工作队列(Todo队列,又叫作Frontier),然后遍历所有工作队列中的URL,下载网页并把其中新发现的URL再次放入工作队列。为了判断一个URL是否已经遍历过,把所有遍历过的URL ...
分类:
其他好文 时间:
2017-11-13 11:20:31
阅读次数:
271
题意 : 给出编号从1 ~ n 的 n 个平面直角坐标系上的点,求从给出的第一个点出发到达最后一个点的最短路径,其中有两种限制,其一就是只能从编号小的点到达编号大的点,再者不能走接下来给出的 m 个限制路径,也就是其中有些路线无法走。 分析 : 把问题抽象一下就是用编号 1 ~ n 构造一个字符串, ...
分类:
其他好文 时间:
2017-10-14 18:22:31
阅读次数:
119
题意 : 给出 n 个模式串,最后给出一个主串,问你主串打乱重组的情况下,最多能够包含多少个模式串。 分析 : 如果你做过类似 Trie图 || AC自动机 + DP 类似的题目的话,那么这道题相对之前的对于主串的“构造”过程加上了一个限制,那就是字符的元素的有限制的,那么DP的状态就不能用长度来表 ...
分类:
其他好文 时间:
2017-10-12 01:02:24
阅读次数:
207
题意 : 给出一个 n 行、m 列的方格图,现从图左上角(0, 0) 到右下角的 (n, m)走出一个字符串(规定只能往下或者往右走),向右走代表' R ' 向下走则是代表 ' D ' 最后从左上角到右下角,不同的路线会走出不同的字符串,问你这些不同的字符串有多少个是包含了接下来给定的两个子串。 分 ...
分类:
其他好文 时间:
2017-10-12 00:54:44
阅读次数:
176
题意 : 给出 n 个病毒串,最后再给出一个主串,问你最少改变主串中的多少个单词才能使得主串中不包含任何一个病毒串 分析 : 做多了AC自动机的题,就会发现这些题有些都是很套路的题目。在构建 Trie 图的时候给病毒串末尾打上标记,最后定义DP[i][j] = 长度为 i 的串在 j 这个状态节点最 ...
分类:
其他好文 时间:
2017-10-11 23:38:12
阅读次数:
172