动态规划
little pepper
哒哒!!!
展开
-
矩阵连乘(动态规划)
题目描述: 递归方式://递归方法 #include<iostream>#include<cstdio>using namespace std;int p[100],s[100][100]; int DirectMatrixChain(int i,int j)//递归的求最优解u { if(i==j) ret...原创 2018-10-14 17:08:05 · 818 阅读 · 0 评论 -
动态规划思想
动态规划是运筹学的一个分支,是一种求解决策过程最优化的数学方法。本质(个人理解):进行分治和处理冗余,适用于解决最优化问题(分治与递归相依相生,都知道递归效率慢,动态规划采用自底向上的方法,处理冗余就是对于重复出现的记录,后面需要时直接取值就好了,同时,题目是求解最优值的话,那么就是动态规划),像最短路径、资源分配、最优装载、库存管理等问题。算法特点:动态规划的最初是为了解决多阶段决策...原创 2018-10-15 18:45:38 · 767 阅读 · 0 评论 -
数字三角形
上面给出了一个数字三角形,从三角形的顶部到底部有多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,累加和最大的路径称为“最佳路径”。题目的任务就是求出最佳路径上的数字之和。注意:路径上的每一步只能从一个数走到下一层和它最近的左边的数或者右边的数。 解题思路(分治法):用递归的方法解决。基本思路是:以D( r , j )表示第r行第j个数字( r , j 都从1开...原创 2018-10-15 20:09:08 · 18390 阅读 · 11 评论 -
最长上升子序列(动态规划)
题目描述:给出一个数列{a1,a2,...,an},要求你选出尽量多的元素,使这些元素按其相对位置单调递增。 任务就是对于给定的序列,求出最长上升子序列的长度。输入数据:输入的第一行是序列的长度N(1<=N<=1000)。第二行给出序列中的N个整数,这些整数的取值范围都是0~10000。输出要求:最长上升子序列的长度。输入样例:...原创 2018-10-16 19:11:14 · 5278 阅读 · 0 评论 -
最长公共子序列(动态规划)
题目描述:最长公共子序列问题:若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又...原创 2018-10-16 20:06:08 · 743 阅读 · 0 评论