08 2018 档案
摘要:一、认识并查集 并查集,逻辑上是一种集合,能够快速的实现合并和查询,因此得名。这里的查询指的是判断两个元素是否在同一集合。并查集能够高效地管理元素分组情况,为程序设计提供极大的便利。 并查集的本质是树形结构,属于同一集合的元素会位于同一颗树中。由于树的度和深度都不受任何限制,非常自由,我们可以很容易
阅读全文
摘要:一、最基础的动态规划之一 01背包问题是动态规划中最基础的问题之一,它的解法完美地体现了动态规划的思想和性质。 01背包问题最常见的问题形式是:给定n件物品的体积和价值,将他们尽可能地放入一个体积固定的背包,最大的价值可以是多少。我们可以用费用c和价值v来描述一件物品,再设允许的最大花费为w。只要n
阅读全文
摘要:“离散化,就是把无限空间中有限的个体映射到有限的空间中去,以提高算法的时空效率。” 很多算法的复杂度与数据中的最大值有关,比如树状数组和纯用数组实现的一对一标记。时常会遇到这种情况:数据的范围非常大或者其中含有负数,但数据本身的个数并不是很多(远小于数据范围)。在这种情况下,如果每个数据元素的具体值
阅读全文
摘要:RMQ (Range Minimum/Maximum Query)问题,即区间最值查询问题,是求解序列中的某一段的最值的问题。如果只需要询问一次,那遍历枚举(复杂度O(n))就是最方便且高效的方法,但如果询问次数很多(m次),O(nm)的复杂度可能就不够看了。比较容易想到的优化方法是运用预处理的思想
阅读全文

浙公网安备 33010602011771号