目录 1 问题描述 2 解决方案 2.1 动态规划法 1 问题描述 现需找零金额为n,则最少需要用多少面值为d1 < d2 < d3 < ... < dm的硬币?(PS:假设这m种面值d1 < d2 < d3 < ... < dm的硬币,其中d1 = 1,且每种硬币数量无限可得) 2 解决方案 2. ...
分类:
编程语言 时间:
2017-02-23 13:17:11
阅读次数:
315
题目 代码 动态规划法(重点) 解析 最优解的问题一般都可以用动态规划算法 动态规划算法: 1.全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解 2.动态规划的关键是状态转移方程,即如何由以求出的局部最优解来推导全局最优解 3.边界条件:即最简单的,可以 ...
分类:
编程语言 时间:
2017-02-18 17:05:15
阅读次数:
172
目录 1 问题描述 2 解决方案 2.1 动态规划法原理简介 2.2 具体编码 2.3 运行结果 1 问题描述 (1)实验题目 给定一个加权连通图(无向的或有向的),要求找出从每个定点到其他所有定点之间的最短路径以及最短路径的长度。 (2)实验目的 1)深刻掌握动态规划法的设计思想并能熟练运用,理解 ...
分类:
编程语言 时间:
2016-12-11 15:29:15
阅读次数:
247
题目的大致意思如下: 输入N组数,一组数代表一个父子对(如,0 1,0代表父节点,1代表子节点),求这N组数所组成的二叉树的高度; 例如: 输入:6 0 1 0 2 1 3 1 4 2 5 3 6 输出:4 解题思路:两种方法,动态规划和回溯法 一.动态规划法:使用一个数组hight[N]记录每组数 ...
分类:
其他好文 时间:
2016-09-24 13:35:00
阅读次数:
176
什么是动态规划算法?动态规划算法其实质就是分治思想和解决冗余。因此它与分治法和贪心法类似,都是将待求解问题分解为更小的,相同的子问题,然后对子问题进行求解,最终产生一个整体最优解。适合采用动态规划法求解的问题,经分解得到的各个子问题往往不是相互独立的。在求..
分类:
编程语言 时间:
2016-09-01 00:30:41
阅读次数:
166
题目链接:http://poj.org/problem?id=3628 题意: 解题思路: 1 确定可能的最大高度sum,就是所有的cow加起来的高度 2 根据动态规划法,求解1到最大高度sum之间的可能解 3 找到比B(书架高度)的最低高度,可能和B一致。 AC代码: ...
分类:
其他好文 时间:
2016-08-06 11:08:42
阅读次数:
131
Q1: 数字游戏: 两个人(A、B)用n个整数排成的一排棋盘玩游戏,游戏从A开始,每个人有如下操作: (1) 拿走棋盘最右侧或者最左侧的棋子,被拿走的数字从棋盘中抹掉。 (2) 棋盘中还剩下两个以上的数字的时候,可以把棋盘最右侧或者最左侧的两个数字抹掉 当棋盘上的所有数字消失之后,游戏结束,谁拿的棋 ...
分类:
编程语言 时间:
2016-08-03 06:44:51
阅读次数:
214
回文字符串问题 一、动态规划法 定义boolean型的 p[i][j],为 Si 到 Sj 是否为回文,true 说明 Si 到 Sj 是回文字符串 则有,P[i,j] = (P[i + 1, j - 1] && Si ==Sj) 初始条件p[i, i] = true, p[i,i+1] = Si=... ...
分类:
其他好文 时间:
2016-07-25 14:33:49
阅读次数:
203
题目描述 给定一个未排序的整数数组,找出最长递增子序列。 例如给定数组[10, 9, 2, 5, 3, 7, 101, 18],最长递增子序列就是[2, 3, 7, 101],长度就是4,最长递增子序列不一定只有一个,只要求出最长的长度。 解法一 动态规划法,定义一个数组dp,dp[i]代表了第i个... ...
分类:
其他好文 时间:
2016-07-25 14:27:30
阅读次数:
217
算法分析之 五大常用算法 算法的复杂度 算法分析之 五大常用算法 算法的复杂度 1.分治法 · 话说递归与HANOI塔 · 二分法求方程近似解 · 用C++实现合并排序 · 求最大值和最小值的分治算法 2.动态规划法 · 动态规划求0/1背包问题 · 最长公共子串问题的实现 · 用动态规划实现导弹拦 ...
分类:
编程语言 时间:
2016-05-30 13:00:38
阅读次数:
165