有向无环图(DAG,Directed Acyclic Graph)上的动态规划是学习动态规划的基础。很多问题都可以转化为DAG上的最长路、最短路或路径计数问题…
分类:动态规划
动态规划之 最优流水调度问题
最优流水调度问题 问题描述: 设有n个作业,每一个作业i均被分解为m项任务: Ti1, Ti2, ┅ , Tim(1≤i≤n,故共有n*m个任务)…
三、动态规划算法解最长公共子序列LCS问题(2011.12.13重写)
动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19、56题、算法导论、维基百科。 第一部分、什么是动态规划算法 &nb…
NOI 1775:采药(C++) 动态规划
典型的01背包,动态规划问题 虽然AC了,但是还有有点不明白,为什么要加不选择物体的for循环(初步的想法是,有可能条件不满足调价物体,但是不应该是0,最少应该是【i-1】【j】的值) 参考: http://…
利用动态规划解决袋鼠过河问题
最近开始刷牛客上的题目,由于本科学的算法基本都忘了,因此写几个帖子记录下自己刷题学到的东西,正好复习一下算法了。 我们都知道,动态规划算法是算法设计中非常重要的一种方法,是一个多阶段决策的过程。在使用动态规划算法之前需要…
动态规划算法简单应用
动态规划的难点就在于找出子问题之间的联系,可以先算出几种比较简单的情况对应问题的解,再用数学表示式列出前后两种情况之间的关系,即可得到问题的解。 一、走方格问题 1.问题引入: 有一个矩阵map,它每个格子有一个权值。从…
动态规划:《完全背包问题》-python实现
接上一篇博客 在01背包问题中,每个物体都不允许重复使用。而完全背包问题:有n种重量和价值分别为Wi和Vi的物品。从这些物品中挑选出总重量不超过w的物品,每种物品都可以挑选多件,求所有挑选方案中价值总和的最大值。 &nb…
动态规划:《部分背包问题》-python实现
接上两篇 部分背包问题:有n种重量和价值分别为Wi和Vi的物品。从这些物品中挑选出总重量不超过w的物品,第i种物品最多选mi个,求所有挑选方案中价值总和的最大值。 将部分背包问题转换成01背包问题进行求解。 import…
动态规划是什么,意义在哪里?!!!!
今天花了几个小时,重新理解了一下dp。。。 首先我们要知道为什么要使用dp,我们在选择dp算法的时候,往往是在决策问题上,而且是在如果不使用dp,直接暴力效率会很低的情况下选择使用dp. 那么问题来了,什么时候会选择使用…
线性动态规划-文件排版
题目 写电子邮件是有趣的,但不幸的是经常写不好看,主要是因为所有的行不一样长,你的上司想要发排版精美的电子邮件,你的任务是为他编写一个电子邮件排版程序。 完成这个任务最简单的办法是在太短的行中的单词之间插入空格,但这并不…
动态规划:最少硬币找零问题、01背包问题、完全背包问题
题目一:01背包问题 一个背包总容量为V,现在有N个物品,第i个 物品体积为weight[i],价值为value[i],现在往背包里面装东西,怎么装能使背包的内物品价值最大? 题目二:完全背包问题 一个背包总容量为V,现…
动态规划:最长回文字符串
题目:请从一个已知的字符串中寻找最长回文字符串 解法1:动态规划 回文字符串的子串也是回文,比如P[i,j](表示以i开始以j结束的子串)是回文字符串,那么P[i+1,j-1]也是回文字符串。这样最长回文子串就能分解成一…