![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 85
Rockivy-
一个专注于分享编程的程序员Rockivy,主要研究Java领域,C++,Python,C等语言以及算法方面,以及项目实战经验分享,欢迎斧正。
展开
-
探索记忆化搜索:优化递归算法的利器
给定一个 𝑅 行 𝐶 列的矩阵,表示一个矩形网格滑雪场。矩阵中第 𝑖 行第 𝑗 列的点表示滑雪场的第 𝑖 行第 𝑗 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。在给定矩阵中,一条可行的滑行轨迹为 24−17−2−1。在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−1,沿途共经过 25 个区域。原创 2024-07-03 17:41:16 · 1093 阅读 · 0 评论 -
舞会无领导:一种树形动态规划的视角
Ural 大学有 𝑁 名职员,编号为1∼𝑁。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 𝐻𝑖 给出,其中1≤𝑖≤𝑁。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。原创 2024-07-01 19:51:31 · 497 阅读 · 0 评论 -
“优化状态空间:状态压缩DP在蒙德里安的梦想问题中的应用“
dp[i][j]表示前i - 1列的方格都已完全覆盖,第i列方格被第i - 1列伸出的方块覆盖后状态为j的所有方案数例如,上图表示的就是dp[3][010010]的状态(红色为2 * 1方块,绿色为1 * 2方块)0表示没有覆盖,1表示覆盖。原创 2024-06-28 23:54:29 · 311 阅读 · 0 评论 -
“计数动态规划:探索整数划分问题中的计数技巧与方法“
一个正整数 n𝑛 可以表示成若干个正整数之和,形如:𝑛=𝑛1+𝑛2+…+𝑛𝑘,其中 𝑛1≥𝑛2≥…≥𝑛𝑘, 𝑘≥1。我们将这样的一种表示称为正整数 𝑛 的一种划分。现在给定一个正整数 𝑛,请你求出 𝑛 共有多少种不同的划分方法。原创 2024-06-27 13:35:00 · 282 阅读 · 0 评论 -
“区间合并解析:石子合并问题的算法探索与实现“
设有 𝑁 堆石子排成一排,其编号为 1,2,3,…,𝑁。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 𝑁 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为1 3 5 2, 我们可以先合并 1、2 堆,代价为 44,得到4 5 2, 又合并 1、2 堆,代价为 9,得到9 2,再合并得到 11,总代价为 4+9+11=24;原创 2024-06-26 21:04:25 · 494 阅读 · 0 评论 -
“文本比对基础:最短编辑距离算法的原理与实现“
有三种操作,所以有三个子集ok子集划分完了考虑状态转移的时候先考虑如果我没有进行这个操作应该是什么状态然后考虑你进行这一步操作之后会对你下一个状态造成什么影响然后再加上之前状态表示中你决策出来的那个DP属性这样就可以自然而然地搞出来转移方程啦1)删除操作:把a[i]删掉之后a[1i]和b[1j]匹配所以之前要先做到a[1(i-1)]和b[1j]匹配2)插入操作:插入之后a[i]与b[j]完全匹配,所以插入的就是b[j]那填之前a[1i]和b[1(j-1)]匹配。原创 2024-06-25 11:40:52 · 864 阅读 · 0 评论 -
“序列优化探究:最长上升子序列的算法发现与应用“
最长上升子序列是指在一个给定序列中,找到一个最长的子序列,使得子序列中的元素单调递增。例如,序列 [1, 3, 5, 4, 7] 的最长上升子序列是 [1, 3, 5, 7],长度为4。这是一个经典的动态规划问题。假设dp[i]表示以第i个元素为结尾的最长上升子序列的长度。可以用一个嵌套循环来遍历所有的元素对,如果前一个元素小于后一个元素,则可以将后一个元素添加到前一个元素所在的最长上升子序列中,从而得到以第i个元素为结尾的最长上升子序列长度。原创 2024-06-23 16:23:15 · 1422 阅读 · 0 评论 -
“无限选择的挑战:完全背包问题的算法策略与解决方案“
小明期末考试得了全班第一名,妈妈给了他一个背包,可以去超市任意选购,可以选购多种商品,每种商品可以选购多个,但是选择的商品必须都放在背包里。超市很大,有很多种商品:火腿,雪糕,饼干 ·····。每种商品都摆满了货架。不同商品的体积和价值不同。在背包能装下的前提下,小明想尽可能带回价值总量高的商品,请问他能带回的商品的最大价值是多少?这就是完全背包问题。有 N 种物品和一个背包,每种物品的数量无限。给出了每种物品的体积 v 和价值 w 以及背包的容量 V。原创 2024-06-21 01:00:00 · 1217 阅读 · 0 评论 -
“优化存储:01背包问题的算法解析与实际应用“
我们的目的是,找到一种选择方案,在背包能装下的情况下,使得选择物品的总价值最大,然后输出总价值。原创 2024-06-20 16:45:12 · 954 阅读 · 0 评论