一、对动态规划的理解: 基本思想是将待求解问题分解成若干个子问题,先求解子问题,再结合这些子问题的解得到原问题的解。1.找出最优解的性质,并刻画其结构特征;2.递归地定义最优值3.以自底向上的方式计算最优值;4.根据计算最优值时得到的信息,构造最优解。 二、递归方程: 1、租用游艇问题: dp[1] ...
分类:
编程语言 时间:
2019-11-03 23:27:35
阅读次数:
113
动态规划算法的理解: 就是把一个大问题变成很多个小问题,并通过求出小问题的最优解,利用他们的关系逐一求出其他问题的最优解。 动态规划应用于子问题重叠的情况: 第一题的核心代码: dp数组即为“以a[i]为结”的“最长子序列”的长度 第二题的核心代码: dp数组即为从i到j出租站的最少租金 在结对编程 ...
分类:
编程语言 时间:
2019-11-03 19:52:15
阅读次数:
85
一、动态规划 动态规划的实质是分治法和解决冗余。所以,动态规划就是将原问题分解成规模更小的子问题,且原问题的最优解与子问题的最优解相关。动态规划将问题实例分解为更小的/相似的子问题,并存储子问题的解,使得每个子问题只求解一次,最终获得原问题的答案,以解决最优化问题。 二、编程 1、单调递增最长子序列 ...
分类:
其他好文 时间:
2019-11-03 15:05:01
阅读次数:
84
一.特性: (1)最优子结构性质。即问题的最优解所包含的子问题的解也是最优的。 (2)子问题重叠性质。在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题, 有些子问题会被重复计算多次,利用子问题的重叠性质,对于每个子问题只计算一次,然后将结果保存 起来,下次需要重新计算已经计算过的 ...
分类:
其他好文 时间:
2019-11-02 18:02:56
阅读次数:
78
动态规划 本人对动态规划的理解:我认为动态规划其实就是搜索的一种,但更加优美,速度更高。递归的方式就是老师说的备忘录,其实就是记忆化深搜,但本质上就是通过状态转移进行递推,所以能通过迭代的方式求解,当前问题的最优解依赖于子问题的最优解,于是当最小子问题初始化出答案后就可以一步一步往当前问题递推。妙啊 ...
分类:
其他好文 时间:
2019-11-01 12:47:10
阅读次数:
60
目录: 个人理解 反悔贪心的分类 反悔自动机 反悔堆 例题简析及代码 一、个人理解: 贪心本身是没有反悔操作的,贪心求的就是当前的最优解。但当前的最优解有可能是局部最优解,而不是全局最优解,这时候就要进行反悔操作。 反悔操作 指的是这一步的贪心不是全局最优解,我们就退回去一步(人工或自动判断),换一 ...
分类:
其他好文 时间:
2019-10-30 22:53:29
阅读次数:
137
模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。模拟退火是由S.Kirkpatrick, C.D.Gelatt和M.P.Vecchi在1983年所发明的。V.?erný在1985年也独立发明此演算法。模拟退火算法是解决TSP问题的有 ...
分类:
编程语言 时间:
2019-10-30 20:03:55
阅读次数:
98
1,贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的的时在某种意义上的局部最优解。 贪心算法并不保证会得到最优解,但是在某些问题上贪心算法的解就是最优解。要会判断一个问题能否用贪心算法来计算。贪心算法和其他算法比较有 ...
分类:
编程语言 时间:
2019-10-28 12:35:43
阅读次数:
96
这道题,总感觉做过。。。 先理解题意,何为容器 容器 要求水面高度相同 于是体积就是长方形,高度有两块较高板的低板决定,宽度由两块板间距离决定。 考虑当前最优解,就贪心 从两边开始向内,若能使得体积变大,则取。 贪心策略为移动当前选的两个木板中较短板,这样减少了宽度,但有可能增加高度。 ...
分类:
其他好文 时间:
2019-10-28 01:19:14
阅读次数:
103
"I 最少拦截系统" 参考: "ACM HDU 1257 最少拦截系统" 、 思路:这个题其实是个贪心,每一次只需要找到一个离当前导弹高度最近的一个拦截系统进行拦截,即是最优解。 代码: cpp // Created by CAD on 2019/10/26. include using names ...
分类:
其他好文 时间:
2019-10-26 20:54:07
阅读次数:
96