动态规划
文章平均质量分 51
小菜鸟派大星
这个作者很懒,什么都没留下…
展开
-
会议安排(贪心算法和动态规划)
1.问题:假设要在一个教室里安排一批活动,并希望使用尽可能多的安排活动。设计一个有效的算法进行安排。2.1.贪心算法:一开始选择活动1,然后把剩下的活动按结束时间递增进行排序,以后的活动与s[i]进行比较,如果可以安排就安排此活动,因为活动已经按结束时间递增进行了排序,所以被选择的活动是可以选择活动中结束时间最早的。此处的贪心策略是每一次都选择可以上和上一个活动相容,而且结束时间最早的活动进行安排。2.2动态规划:设计思路:首先把活动按结束时间最早进行递增排序;dp[i]记录活动以活动i为结尾的最大原创 2021-11-15 17:49:26 · 3657 阅读 · 2 评论 -
动态规划之0/1背包问题
1.问题:一个旅行者有一个最多能装m公斤的背包,现在有n中物品,每件的重量分别是W1、W2、……、Wn,每件物品的价值分别为C1、C2、……、Cn, 需要将物品放入背包中,要怎么样放才能保证背包中物品的总价值最大?2.设计思路:dp[i][j]记录前i个物品,背包容量为j时的最大价值;按行去更新dp[i][j];每一个物品都有两种选择:如果此物品的重量大于背包的容量就不放此物品,dp[i][j]=dp[i-1][j],也就是背包容量为j,有i个物品时的最大价值和背包容量为j,有i-1个物品时的最大价值相原创 2021-11-15 17:38:09 · 284 阅读 · 0 评论 -
动态规划之最长不下降子序列
1.问题:设有整数序列b1,b2,b3,…,bm,若存在i1<i2<i3<…<in,且bi1<bi2<bi3<…<bin,则称 b1,b2,b3,…,bm中有长度为n的不下降序列bi1,bi2,bi3,…,bin。求序列b1,b2,b3,…,bm中所有长度(n)最大不下降子序列。2.设计思路:自底向上的计算,从序列的末尾开始,每一个数都和其后面所有的数进行比较,看是否能构成不下降子序列,同时设置一个数组dp[]去记录以此数为起始位置可以构成的最长不下降子序原创 2021-11-15 17:29:00 · 653 阅读 · 0 评论 -
动态规划之最长公共子序列问题
1.题目:求两个字符序列的最长公共字符子序列。给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB,则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA。2.设计思路:使用动态规划的思路求解,dp[i][j]数组记录最长公共子序列的长度;自底向上的思考,可以把大的问题,变成小的问题:如果A[i]=B[J],那么有序列的最大长度dp[i][j]=dp[i-1][j-1];如果A[i]!=B[j原创 2021-11-15 17:08:44 · 905 阅读 · 2 评论 -
动态规划之资源分配
此题目有一个博主写的非常好,有需要去网友可以去看看:(29条消息) 动态规划 资源分配问题 代码超详细注释!!!_Stupid坨的博客-CSDN博客https://blog.csdn.net/weixin_44916213/article/details/1123197951.题目:资源分配问题:例如现在有A、B、C三个项目,利润表如下,有8万元的资金,求最大利润的资源分配方案。2.设计思路:数组temp记录当前最大的收益情况;首先计算出第一个项目的利润表,在资金不断加大的情况下,根据第一个利润表.原创 2021-11-06 18:39:01 · 1888 阅读 · 1 评论 -
动态规划之数塔问题
1.问题描述:有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的值最大;2.设计思路:使用动态规划的自底向上进行计算;把五层的数组变成四层,三层,两层,直到变成一层时结束,此时的值就是最优值;从第四层开始,往下选择最大的一个值进行组合;把组合完成的值放置在第四层,然后在第三层开始计算;并设置一个数组dp记录最优值的路径,数组的值为0时向下走,为1时向右下走;利用局部最优解逐步得到全局最优解;3.代码:/*数塔问题--动态规划*.原创 2021-11-06 13:51:06 · 3226 阅读 · 0 评论