- 博客(10)
- 收藏
- 关注
转载 AC自动机学习笔记
Q:给出一坨短串,给出一个长串,求有多少个短串在长串中出现了。 A:把短串丢进trie树,建立fail指针,把长串在trie树上匹配,暴力蹦fail即可。每一个点只会被蹦一遍,打标记即可。Q:给出一坨短串,给出一个长串,求每一个短串在长串中出现了多少次。 A:把短串丢进trie树,建立fail指针,把长串在trie树上匹配,能匹配上的点size都+1,然后建立fail树,统计每一个
2017-01-24 17:00:44 313
原创 [BZOJ2434][NOI2011]阿狸的打字机(AC自动机+树状数组)
题目:我是超链接题解:很久之前的题解了,现在重新看了一下这道题目,自己做到70pts就做不下去了70pts:我们知道如果串x在串y中出现,那么在fail树中y的某个/些节点会在x的子树里,而x在y中出现多少次就是y的多少个节点在x的子树中。然后我们按照长串排个序,长串相同的一起做,每次把长串所有的节点在树状数组中标记一下,然后使用这个长串的短串用dfs序查询子树和100pts:上面的70pts最大...
2017-01-24 16:59:06 426
原创 [HDU2222]Keywords Search(AC自动机)
点击打开链接AC自动机模板#include #include #include #define N 10000*50+10using namespace std;char st[N],ss[1000005];int tot=0,ch[N][30],fail[N],is_end[N];bool visit[N];void trie(){ int now=0,l=strle
2017-01-23 15:43:13 288
原创 字符串应用之AC自动机
AC 自动机的用处:查询目标串中出现了哪些模式串(即文本字符串 s 中出现了哪些字典中的单词) 一种字符串上的 DP Fail 树应用AC 自动机的算法分三步:构建所有『单词』的 Trie 树构建失配指针模式匹配过程1.void trie(){int now=0,l=strlen(st);for (int i=0;i { int x=st[
2017-01-22 21:15:32 370
原创 平衡树之splay
--在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。伸展树应运而生。伸展树是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。 •大家只需要记住,每次进行插入/查询的时候,都要把插入/查询的元素通过旋转变到根的位置,splay的单次操作均摊复杂度就是O(logn)的。Splay的存储与Treap不
2017-01-21 17:40:35 362
原创 平衡树之Treap
–一个集合支持快速插入、删除一个数字。–支持快速查找一个数字在所有已插入数字中的排名。–支持删除大小在某一个区间内的数字。动态维护一个数列。可以在数列的任何位置插入删除,求区间和,Min,Max,进行区间翻转•这就需要用到二叉查找树( Binary SearchTree)。•性质:–这是一棵二叉树。–对于任意一个节点,左子树的所有节点权值小于该节点权值,
2017-01-21 15:41:07 306
原创 虫食算
这是一道很好的题目,教给了我很多暴力的剪枝方法超链接不解释。。。。https://www.luogu.org/problem/show?pid=1092解释:重构了两遍代码才A掉的,当时思路真的有问题,没办法剪枝和处理进位情况,读了一个题解描述。好了正题整体思路是从后向前,从上向下的依次搜索三个大数据几个相当重要且有趣的剪枝+思路:1.每次搜
2017-01-05 15:26:48 555
原创 Mayan游戏
题目描述给个链接门..........https://www.luogu.org/problem/show?pid=1312#sub解释:两次A的题目,就是妥妥暴力判断点是否存在,存在就换着试试。。优化的剪枝:如果和右边(下面)颜色不一样就换走,如果左边(上面)是空的就换走说说一开始犯的zz的错误。1.降落时可以降落好多格【捂脸】
2017-01-03 19:21:30 349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人