动态规划算法其实就是一种优化的算法,其基本思想就是将待求解的问题分解成若干子问题,先求解子问题(这些解不是独立的),然互从这些子问题中得到原问题的解。其最终得到的结果往往是最优解。和贪心法不同的是,动态规划法不可以将一个整体进行分割。
举个简单的例子:给出7个数,1,2.....7,从中选出不超过3个使得这3个数的和不超过20.求解时我们应该一步一步进行:
...
分类:
编程语言 时间:
2014-11-07 09:54:51
阅读次数:
186
解题思路:
1.简单动态规划。基本思想是用小的二叉树去组成大的二叉树,最后输出dp[k][n]-dp[k-1][n]恰好就是要求的n个
点组成深度最多为k的方法数
2.设dp[i][j]表示j个点组成深度最多为i的二叉树的方法数,则动态规划公式为:
dp[i][j]=∑(dp[i-1][l]*dp[i-1][j-1-l])(1<=l<=j-2)
dp[i][1]=1
3.注意:点的个数总为奇数。...
分类:
其他好文 时间:
2014-11-07 09:51:47
阅读次数:
191
0-1背包问题:
有N件物品和一个容量为V的背包。第i件物品的重量是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。
这个问题的特点是:每种物品只有一件,可以选择放或者不放。
算法基本思想:
0-1背包是经典的动态规划问题。利用动态规划思想 ,子问题为:f[i][c]表示前i件物品恰放入一个容量为c的背包可以获得的最大价值。...
分类:
其他好文 时间:
2014-11-06 20:10:43
阅读次数:
150
Tarjan算法 (以发现者Robert Tarjan命名)是一个在图中寻找强连通分量的算法。算法的基本思想为:任选一结点开始进行深度优先搜索dfs(若深度优先搜索结束后仍有未访问的结点,则再从中任选一点再次进行)。搜索过程中已访问的结点不再访问。搜索树的若干子树构成了图的强连通分量。 应用到咱.....
分类:
编程语言 时间:
2014-11-05 18:55:19
阅读次数:
227
Servlet编程基本思想我上一篇文章已经说过,这里就不多说了,给大家分享一个用Servlet实现验证码验证的示例。
首先我们需要一个Servlet类:ImageServlet.java来产生验证码并将验证码存放到Session中
{CSDN:CODE:Q184t1a5V1P6T3z1y4i9}
接下来,我们需要配置web.xml文件添加Servlet
{CSDN...
分类:
其他好文 时间:
2014-11-05 14:55:00
阅读次数:
144
最近看到Andrew Ng的一篇论文,文中用到了Kmeans和DL结合的思想,突然发现自己对ML最基本的聚类算法都不清楚,于是着重的看了下Kmeans,并在网上找了程序跑了下。kmeans是unsupervised learning最基本的一个聚类算法,我们可以用它来学习无标签的特征,其基本思想如....
分类:
其他好文 时间:
2014-11-04 10:36:13
阅读次数:
269
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其keyword大小插入到前面已经排好序的子序列中的适当位置,直到所有记录插入完毕为止。设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12. 将a[i]并入当前的有...
分类:
编程语言 时间:
2014-11-03 20:46:19
阅读次数:
189
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-11-03 14:33:31
阅读次数:
186
1.背景《算法》一书中提到了关于算法的一些基本思想优秀的算法因为能够解决实际的问题而变得更为重要; 高效算法的代码可以很简单; 理解某个实现的性能特点是一项有趣而令人满足的挑战; 在解决同一个问题的多种算法之间进行选择时,科学方法是一项重要工具; 迭代式改进能够让算法效率越来越高; 使用union-...
分类:
编程语言 时间:
2014-11-02 01:54:43
阅读次数:
326
2. 插入排序—希尔排序(Shell Sort)希尔排序是1959年由D.L.Shell提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序。基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,在对全体记录依次进行直接插入排序。...
分类:
编程语言 时间:
2014-11-01 21:49:17
阅读次数:
209