④ 动态规划
贝贝今天AC了吗
这个作者很懒,什么都没留下…
展开
-
区间DP | 罗汉鹰问题
更新一下今天 “计算理论与算法设计” 期末考试的三道编程题,没有测试用例的题真是太蓝受了。分享一下我考试时的思路,最后也给出了我编写的自测用例。仅供参考,如有错误还请指出~01成绩 15 开启时间 2020年06月24日 星期三 15:10 折扣 0.8 折扣时间 2020年06月24日 星期三 18:30 允许迟交 否 关闭时间 2020年06月24日 星期三 18:30 题目描述:从前有一群鹰,它们很喜欢玩叠罗...原创 2020-06-24 20:01:12 · 265 阅读 · 0 评论 -
序列DP | 最长递增子序列
首先一定要分清楚 子串 与 子序列 的概念:两者都是从某一序列种从左向右找出一定元素组成的,但子串是一定要连续的,而子序列不需要。例如:串 abcde 的字串可以为 abc、cde 等,子序列可以为 abc、ade、ace 。最长递增子序列问题(LIS):给定一个有 n 个元素的序列 a[ ],求出其递增子序列的最大长度。短短的题目透露出了很大的恶意啊...这个问题我想了很久,也参...原创 2020-03-31 17:00:05 · 342 阅读 · 0 评论 -
背包DP | 01背包问题
01背包问题:有n件物品,没意见的物品重量为 w[ i ],价值为 c[ i ]。现有一个容量为V的背包 (背包的最大承重为V),问如何选取物品放入背包,使得背包内物品的总价值最大,最大为多少?如果采用暴力枚举法,每一件物品有两种选择:放入背包 / 不放入背包。因此 n 件物品有 种选择结果。时间复杂度为太糟糕了。而是用动态规划问题可以大大降低时间复杂度!1、算法分析令 d...原创 2020-03-30 00:54:29 · 398 阅读 · 0 评论 -
背包DP | 找零钱问题
找零钱问题:假设有一个出纳员手中有几种面值的硬币,要求他用最少的硬币数支付规定的现金。例如,现有3种硬币:它们的面值分别为1元、4元和6元。要支付8元。找零钱问题可以使用贪心或完全背包来解决,但是用贪心解决是对面值的数字有条件的,不是所有的情况都可以的。具体的区别可以看看这篇文章:最优找零问题 —— 贪心or动态规划,写的很清楚。本文是根据背包DP | 完全背包问题模型来解决问题。...原创 2020-03-30 14:24:14 · 578 阅读 · 1 评论 -
背包DP | 子集和问题
DP成绩 10 开启时间 2020年03月10日 星期二 07:55 折扣 0.8 折扣时间 2020年04月7日 星期二 23:55 允许迟交 否 关闭时间 2020年04月7日 星期二 23:55 对于由从1到N (1 <= N <= 39)这N个连续的整数组成的集合来说,我们有时可以将集合分成两个部分和相同的子...原创 2020-03-19 18:56:31 · 537 阅读 · 0 评论 -
背包DP | 完全背包问题
完全背包问题:有n种物品,每一件的物品重量为 w[ i ],价值为 c[ i ]。现有一个容量为V的背包 (背包的最大承重为V),问如何选取物品放入背包,使得背包内物品的总价值最大,最大为多少?(每一种物品均有无穷件)完全背包与01背包的区别完全背包与背包DP | 01背包问题的唯一区别就在于:01背包问题每一种物品只有一件,你只能选择0件或1件。而完全背包问题每一种物品有无穷件...原创 2020-03-30 13:45:44 · 307 阅读 · 0 评论 -
入门DP | 2:租用游艇问题
租用游艇问题成绩 10 开启时间 2020年03月24日 星期二 23:15 折扣 0.8 折扣时间 2020年04月21日 星期二 23:55 允许迟交 否 关闭时间 2020年04月21日 星期二 23:55 问题描述: 长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n. 游客可在这些游艇出租站租用游艇, 并在下游的...原创 2020-03-25 22:49:14 · 1594 阅读 · 0 评论 -
入门DP | 1:数字三角形问题
数字三角形问题成绩 10 开启时间 2020年03月24日 星期二 23:15 折扣 0.8 折扣时间 2020年04月21日 星期二 23:55 允许迟交 否 关闭时间 2020年04月21日 星期二 23:55 问题描述: 给定一个有n行数字组成的数字三角形. 试设计一个算法, 计算出从三角形的顶至底的一条路径, 使该路径经...原创 2020-03-25 22:11:04 · 684 阅读 · 1 评论 -
区间DP | 1:矩阵链乘问题(含优化) —— 例题:矩阵链乘、合并石子
矩阵链乘法问题:给定 n 个矩阵的链 <A1, A2, A3, ..., An>,矩阵 Ai 的规模为。求完全括号化方案,使得计算乘积A1A2...An所需要标量的乘法次数最少。两个矩阵 A 和 B 只有相容,即 A 的列数等于 B 的行数时,才能相乘。如果 A 是 p×q 矩阵,B 是 q×r 矩阵,那么乘积 C 是 p× r 矩阵。计算 C 的进行了 pqr 次乘法...原创 2020-03-19 15:45:30 · 4518 阅读 · 2 评论 -
区间DP | 2:环上的合并石子 —— 例题:合并石子(环形)
本文是在区间DP | 1:矩阵链乘问题(含优化) —— 例题:矩阵链乘、合并石子上的升级(建议先看链接文章)。从链到环的改变,但本质还是区间dp问题,将环的区间任然解析成链即可。环上的合并石子问题:环形排列着N堆石子,现在要将石子合并成一堆。规定如下:每次只能将相邻的两堆石子合并,合并两堆石子所花费的时间为两堆石子的数量和。求将N堆石子合并成一堆最小花费的时间。(石子分为n堆,石子的数量...原创 2020-03-20 17:27:51 · 516 阅读 · 0 评论 -
树形DP | 1:—— 例题:小游戏
小游戏成绩 10 开启时间 2020年03月10日 星期二 07:55 折扣 0.8 折扣时间 2020年04月7日 星期二 23:55 允许迟交 否 关闭时间 2020年04月7日 星期二 23:55 某人很喜欢玩计算机游戏,特别是战略游戏,但是有时他不能尽快找到解所以常常感到很沮丧。现在面临如下问题:他必须在一个中世纪的城堡...原创 2020-03-19 17:06:03 · 1649 阅读 · 2 评论 -
递归与分治 / 序列DP | 最大子数组问题
问题:寻找数组A[ l..r ] 中各元素之和最大的连续非空子数组。我们称这样的数组叫最大子数组。本文将给出三种解法:暴力求解、分治、动态规划。时间复杂度依次递减。为了方便函数传出结果,我们定义一个结构体来储存最大子数组的要素,即该子数组在原数组的下标界限和对应的和。typedef struct subArray { int l; //子数组的左边界 int ...原创 2020-03-06 14:51:13 · 597 阅读 · 0 评论