- 博客(10)
- 收藏
- 关注
原创 AC自动机总结
如果你还不知道KMP是什么,或者不知道Trie是什么,先点下面的链接,学好这两样再来看这篇文章。KMP入门教程传送门。Trie入门教程传送门。好,那么我来讲讲AC自动机吧。以洛谷P3808模板题为例,如果我们有n个模式串,和一个文本串,我们需要统计有多少个模式串在文本串中出现了,怎么办?显然,如果我们直接枚举每个模式串,然后将其与文本串进行匹配,判断是否匹配成功,那么效率就
2017-08-30 21:26:56 1454
原创 字典树Trie总结
Trie就是把n个字符串建成一个树,树的每个节点都是一个字母,然后字符串的最后一个节点,我们会在Trie中对应的节点处打上标记,然后从根节点到每个标记点的路径上的字母依次排开就是n个字符串中的一个。是不是很浅显?稍稍举个例子:n=5hehishersabcxbc那么我们建的Trie应该是这样的 root / |
2017-08-29 20:39:33 924
原创 登峰造极之树——Splay伸展树
这个splay也是个很有趣的数据结构,它是为了平衡权值二叉树而提出的,却最终不是以权值二叉平衡树的形式被广泛使用,而是去维护序列的区间修改(某些线段树实现不了的区间修改,如区间翻转等),很多萌新在初学splay时都看的是平衡权值二叉树形式的,所以突然接触区间翻转等问题会有困难。这里我就不讲splay的权值平衡树的形式了(网上资料很多),而是主要讲一讲怎么去理解splay去维护区间(几乎没有人解释的
2017-08-28 10:04:57 1295
原创 登峰造极之树——Size_Blanced_Tree萌新入门教程
先前的博文:旧版SBT教程洛谷P3369是道模板题,我在洛谷P3369中详细的写了一个题解,这里就直接copy来了。当时写的时候把zig,zag表示的旋转方向弄反了,大家将就这看吧。大家自己打的时候就把zig改成left_rotate,把zag改成right_rotate。184ms / 3.15MB代码:2.61KB C++11时空以及编程复杂度都还好吧= =,大
2017-08-28 09:42:05 493
原创 登峰造极之树——左偏树
左偏树其实就是个堆,而且是个可并堆,可并堆是指可以在O(logn)的时间内完成两个堆的合并的堆结构。显然,二叉堆虽然实现容易,并且好理解,但是合并需要O(n)的时间。左偏树不是一个完全二叉树,更不是一个平衡树,顾名思义,它的左儿子的比重应该大于右儿子。那么在一个树中我们如何确定左儿子与右儿子的比重大小关系呢?我们可以一个定义:距离。我们定义一个左偏树的距离是其根节点到右儿子
2017-08-26 21:42:17 450
原创 网络流征程——ISAP算法
叹:真心没时间写博了问:那你怎么有时间在洛谷上切了4道ISAP的模板题,然后还详细写了题解?叹:【手动滑稽】先给了Dinic的说明吧:Dinic详解ISAP就是在Dinic上再优化。我们考虑Dinic,它其实在DFS回溯时就确定以当起点前点为的最短路层次图已经不适用了,但是Dinic选择放弃这条路,尝试其他的路,然后再bfs一次性重构一个层次图,但其实是没有必要的,因为随着
2017-08-25 22:21:30 310
原创 网络流征程——Dinic再详解
旧版链接//感觉以前写的好敷衍上次的文章绝大本分摘自别人的博客,这次我自己仔细的分析一下。首先,简单的FolkFoukerson算法不断的增广时,可能走了太多的反向弧,即做了大量的无用功,所以我们规定了增广的一个条件——每次只增广最短的那条,那么可以保证这条增广路长度不下降,上限是O(n),如果我们简单用bfs进行增广,这就是著名的EmondKarp(EK)算法,那么整
2017-08-25 22:09:36 340
原创 POJ——2481
●Poj 2481●给你 n 个闭区间,问每一个区间被多少个区间完全包含(完全重合不算)。●n●Time Limit : 1s●Memory Limit : 256MB这应该算是一类套路题。对于区间覆盖型问题,普及难度的是贪心,再难一点点就是dp,提高难度的算是数据结构维护一下,如果是dp+数据结构,蒟蒻觉得应该要上省选了= =这里还是一个树状数组搞一搞
2017-08-17 10:40:20 317
原创 BZOJ——4240
4240: 有趣的家庭菜园Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 441 Solved: 220[Submit][Status][Discuss]Description对家庭菜园有兴趣的JOI君每年在自家的田地中种植一种叫做IOI草的植物。JOI君的田地沿东西方向被划分为N个区域,由西到东标号为1~N。IOI草一共有
2017-08-17 10:31:22 331
原创 BZOJ——1452
好久没写博了= =描述输入产量样品输入样品输出12暗示统计答案时我们可以考虑维护前缀和,那么做个差就行了,由于颜色数量非常少,所以我们可以考虑对每个颜色单独维护与计算。而每次修改颜色时,他不会对左上角产生贡献,对右上,左下及右下的前缀和都会产生贡献。这让人
2017-08-17 10:20:46 204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人