随笔分类 - 算法描述
讲讲各种算法什么样
摘要:关于二分 二分,是一种流氓算法,这种方法适用于直接算(猜、蒙、试)答案,然后直接得出最优解, 这一方法,对于可以轻易证明答案是否可行(o(n)、o(1))的题目有奇效, (在NOIP2015考试的时候出了这么一道题,放倒一推蒟蒻(包括我)) 二分的使用条件 1.如上文所说,对于轻易证明答案是否可行的
阅读全文
摘要:关于这一主题的DP问题的优化方法,我以前写过一篇博客与其有关,是关于对递推形DP的前缀和优化,那么这种优化方法就不再赘述了。 什么叫1D*1D的DP捏,就是一共有N种状态,而每种状态都要N种决策,这就叫1D*1D的DP,对于这种DP一般来说状态的转移都是可以从O(N2)优化到O(NlogN)甚至O(
阅读全文
摘要:LCA是图论中常用的解决树形结构子问题的工具,这一问题一般需要用一个简短的子函数直接解决,但是这对于广大蒟蒻们仍然是一个不小的问题。 LCA是指在树形结构中两点的最近公共祖先,对于这个问题,直接向上找事最直接的方法,但同时时间复杂度和数据给出的生成树的层数有关,最优情况是logN级别的,但是如果数据
阅读全文
摘要:这是在2016在长沙集训的第三天,一位学长讲解了“前缀和优化”这一技巧,并且他这一方法用的很6,个人觉得很有学习的必要。 这一技巧能使线性递推形DP的速度有着飞跃性的提升,从O(N2)优化到O(N)也不是不可能。 这一技巧的主要思想是使要加和的数据完全储存,并且在下一次计算中直接调用,所以你的对于D
阅读全文
摘要:上次TYVJ有一道裸LIS,然而我当时直接打了一个N^2暴力就草草了事,然后就ZZ了,只拿了60分,其实NlogN的LIS和N^2的差的不多,只是没有N^2,好想罢了,鉴于某学弟的要求,所以就重现一下金哥当年讲LIS的风范。 首先,LIS指的是最长上升子序列。指的是我们要求出一个在母序列中找出一些元
阅读全文
摘要:又要来一篇高质量的博客了 这道题可以用BZOJ1001做例子, 首先我们来张图 这张图有6个点,10条边,每条边都有边权。 那么什么叫最大流最小割捏? 解释如下 在一个平面图中,能够从起点到达终点的最大流量,等于,如果从网络中移除就能够导致网络流中断的边的集合的最小容量和。 那么这个问题如何转变为最
阅读全文
摘要:关于tarjan,在下觉得这个算法从本质上是一种暴力求强连通分量的方法,但事实上这也是最有效的求强连通分量的方法之一,它对于处理各种强连通分量中奇怪问题,都可以直接转化,所以比较通用和常见。 什么是tarjan 粗略的描述一下(详细描述在百度里很详细) 首先每个点都有时间戳和最小子树戳。 时间戳的定
阅读全文
摘要:本来我是想把这两个算法分开写描述的,但是SPFA其实就是Dijkstra的稀疏图优化,所以其实代码差不多,所以就放在一起写了。 因为SPFA是Dijkstra的优化,所以我想来讲讲Dijkstra。 什么是Dijkstra Dijkstra是一种求单源最短路的基础算法,时间复杂度在不加堆优化的情况下
阅读全文
摘要:这是一篇简单的匈牙利算法的理解篇,首先匈牙利算法的名字听起来就和匈牙利牛肉饭一样让人产生食欲(?)233。 好的接下来我们开始正式带大家了解什么叫匈牙利算法。 那么要了解算法的基本原理,我们先看一张图 在这张图里,我们可以清楚的看出图上的点被我们分成了两种,一种是数字,另一种是字母,并且数字与数字、
阅读全文

浙公网安备 33010602011771号