动态DP实例讲解 一、简介有一类问题,它可以采用DP解决。但是,如果我们加入区间查询,单点修改甚至区间修改,普通DP望尘莫及。于是,动态DP就应运而生了。二、例题例题一:给定一个长度为n的序列,你需要维护两种操作:①查询一个区间的最大子段和;②单点修改(即将一个位置上的数改成另一个数)Solution首先, 动态规划 2022年02月26日 121 点赞 0 评论 104146 浏览
什么是哈希? 从原理到应用分析什么是哈希?一、什么是哈希?哈希(hash):将任意长度的输入(关键字),通过Hash算法变成固定长度的输出。这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值,通常哈希值代表了关键字的存储位置。但是为什么要这样做呢?或者说, 动态规划 2022年02月10日 79 点赞 0 评论 85027 浏览
记忆化搜索实例讲解 什么是记忆化搜索?记忆化搜索在本质上,还是动态规划,只是实现方式采用了深度优先搜索的形式,但是它不像深度优先搜索那样重复枚举所有情况,而是把已经计算的子问题保存下来,这样就和动态规划的思想不谋而合了。本篇文章会通过最简单的例子对记忆化搜索进行深入讲解,帮助大家学会什么是记忆化搜索。 动态规划 2022年04月24日 244 点赞 0 评论 79808 浏览
DP优化(一)单调队列/单调栈优化实例讲解 一、什么是单调栈和单调队列?(1)单调栈从名字上就听的出来,单调栈中存放的数据应该是严格单调有序的,具有以下两个性质。1.满足从栈顶到栈底的元素具有严格的单调递增或单调递减性;2.满足栈的后进先出特性,即越靠近栈底的元素越早进栈。单调栈也分为单调递增栈和单调递减栈。 动态规划 2022年05月04日 201 点赞 0 评论 128386 浏览
插头DP图文实例讲解 本篇通过图文解析讲述插头DP的内容,结合前面的状态压缩DP知识,以及前置知识:哈希,方便大家能快速理解。在阐述什么是插头DP之前,我们先了解插头DP有什么用?插头DP是用来解决一类网格图上的连通性问题的强力工具。题目的特征是给定的网格非常小(这个特征类似状压DP)。 动态规划 2022年04月14日 158 点赞 0 评论 70546 浏览
超详细背包DP九讲(算法分析+问题分析+代码分析) P01:01背包问题题目:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路:这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 动态规划 2022年02月28日 136 点赞 0 评论 84900 浏览
DP优化(二)斜率优化实例讲解 有一类DP状态方程,例如:dp[i]=min{dp[j]−a[i]∗d[j]} 0≤j<i,d[j]≤d[j+1],a[i]≤a[i+1]它的特征是存在一个既有i又有j的项a[i]∗d[j]。编程时,如果简单地对i和j循环,复杂度是O(n2)的。 动态规划 2022年05月29日 191 点赞 0 评论 72091 浏览
计数DP实例讲解 本篇主要从计数DP上结合实例分析。一、计数类DP——整数划分整数划分大体上可以分为3类(1)考虑顺序的拆分方案(即1,1,2;和2,1,1是两种不同的方案),这种问题一般转化为完全背包即可解决。(2)不考虑顺序的拆分方案,可以划分出空集(也就是可以有对拆分完全没贡献的东西存在(0))(3)不考虑顺序的 动态规划 2022年04月04日 98 点赞 0 评论 61681 浏览
区间DP实例讲解 一、什么是区间DP?顾名思义:区间DP就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的最优解进而得出整个大区间上最优解的DP算法。二、核心思路既然让我求解在一个区间上的最优解,那么我把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。 动态规划 2022年04月14日 89 点赞 0 评论 70969 浏览
DP优化(三)四边形不等式优化实例讲解 有一种DP可以写成四边形不等式,那么可以用一个优化来优化这种DP(一般是二维的,不加优化是O(n3))。如果a≤b≤c≤d,那么如果DP式子满足f(a,c)+f(b,d)≤f(b,c)+f(a,d),那么这就是一个四边形不等式。一、首先先看一道例题题目:有一群人要乘船, 动态规划 2022年03月09日 92 点赞 0 评论 83570 浏览