lkb 的小屋

start again. //小蒟蒻也有大梦想

最大流、最小割小结

网络流问题博大精深,目前我们只学习了其中的一点皮毛,初步认识了最大流问题及其 Edmonds-Karp 算法,了解最小割与最大流之间的联系,初步掌握了利用最大流解决某些二分图匹配问题的方法,因此在这里就谈谈我对网络流的理解。

2017-08-13 20:07:45

阅读数:1358

评论数:0

强连通分量 Tarjan 算法入门笔记

强连通分量在图论问题中得到广泛的应用,往往可以将有向图缩点,得到一个 DAG,于是避免了原图中可能有环造成后效性,可以在上面进行动态规划求解。 显然强连通分量是只针对于有向图而言的。对于一个连通的无向图,它本身就是一个连通分量。

2017-04-27 11:12:11

阅读数:164

评论数:0

Hash 入门课堂笔记

结合 lgj 的讲课和自己的理解随便写写,如有不当之处请指出。

2017-04-20 07:53:33

阅读数:145

评论数:0

树型 DP 入门课堂笔记

所谓“树型DP”,顾名思义,是在树上做的 DP。

2017-04-18 18:36:28

阅读数:237

评论数:2

状态压缩 DP 入门课堂笔记

状态压缩型动态规划是一种实用的算法。顾名思义,它的优点就在于能够将一些可以表示为非 0 即 1 的状态进行压缩,从而大大节省了空间。说白了,状压 DP 就是利用了“位”的关系。因此位运算和集合的一些相关内容是学习状压 DP 必不可少的预备知识。

2017-04-11 16:06:20

阅读数:122

评论数:0

扩展kmp算法

考虑如下的问题: 给出一个长度nn的字符串S0..n−1S_{0..n-1} 和一个长度mm的字符串T0..m−1T_{0..m-1} 问SS的哪个后缀和TT具有最长的公共前缀(Longest Common Prefix,以下简称LCP) 让我们来简单分析一下,暴力做法就是枚举SS的每一个后缀和T...

2016-08-12 18:32:00

阅读数:288

评论数:0

manacher算法(寻找最长回文)

考虑这样的一个最长回文子串问题: 给定一个长度为nn的字符串SS 现在要从中找出一个回文的子串TT 字符串AA是回文的,当且仅当AA反转后的A′A’和AA完全相等。 问TT可能的最大长度。 容易想到直观的暴力算法,枚举所有的子串并逐一判断,时间复杂度为Θ(n3)\Theta(n^3)。但可以注意到...

2016-08-07 11:47:33

阅读数:959

评论数:0

Dijkstra算法

【最短路径问题】对在权图G=(V,E),从一个源点s到汇点t有很多路径,其中路径上权和最少的路径,称从s到t的最短路径。【三角形定理&松弛】我们知道三角形的特性:任意两边之和大于第三边。因此,在求解过程中,若对于顶点x和顶点y不符合该特性,即可对它们进行“松弛”。//设dis[x]为源点s...

2016-08-07 11:09:28

阅读数:142

评论数:0

最长上升子序列问题的几种解法

先说点题外话:为了期末考试备战,好久没碰OI了,博客荒废了三周。一心全力备考,结果还是差之毫厘失之千里。放假之后因为考砸颓了两天,来创新班之后精神终于好多了。言归正传。最长上升子序列问题是信息学竞赛中的经典问题。为了方便,我们约定,取它的英文Longest Increasing Subsequen...

2016-08-07 11:09:23

阅读数:228

评论数:0

最小生成树(kruskal算法)

问题:详见最小生成树之prim算法算法描述:前提条件:MST一定无环,以确保不产生浪费。每次选择一条权最小的边e。若将e加入MST中会产生环,则放弃e;否则将e加入MST中。如果已经加了N-1条边,结束;否则执行2。怎么判断是否形成环?可以用并查集实现。将已选的顶点放入一个集合中,若当前边e的两个...

2016-08-07 11:09:15

阅读数:138

评论数:0

最小生成树(prim算法)

在实际生活中我们常常会遇到这样一些问题:有若干个需要连接的点(不妨假设为一些村庄)和若干条连接着两个点的边(在村庄间修公路),而这些边会有不同的权值(可设为修路所需的费用不同)。现在要连通这些所有的点,并使权值和最小。这类问题在现实生活中很广泛,如修公路、架设电网,等等。在信息学竞赛中,这种问题有...

2016-08-07 11:09:12

阅读数:581

评论数:0

RMQ

“RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j”——某百科看完上面这段文字,我们就可以知道所谓RMQ的作用了。它是一种求区间最值的算法。简单回忆一下,平时我们求区间最值的时候是怎么做的呢?对于一般的选手,...

2016-08-07 11:08:39

阅读数:202

评论数:0

kmp匹配算法

(本文整理自讲义及自己的笔记,如有错误之处请指出)注意:在本文中,我们将使用始于零的数组来表示我们的字符串。所以在下面例子中,我们用S[2]来表示字符串S中的第三个字符。这种表示遵从C++语言的语法。 KMP算法可在一个主“文本字符串”S内查找一个“词”W的出现位置。此算法通过运用对这个词在不...

2016-08-07 08:24:51

阅读数:478

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭