卡特兰数问题:1. 有一个无限大的栈,一共n个元素,请问有几种合法的入栈出栈形式? 2. 排队买电影票的问题,有2n个人排队买票,其中有n个人只有一张50元纸币,另外n个人只有一张100元的硬币,售票员没有零钱,问这2n个人应该怎样排队,才能使得不冲突,每个人都能买到票。 3. 矩阵A1A2A3.. ...
分类:
其他好文 时间:
2016-10-15 22:02:21
阅读次数:
188
隐马尔科夫模型(HMM)是一种重要的机器学习模型,同时也是PGM中的一种。本文将通过几个例子来演示HMM可以帮我们做些什么事情。特别地,在这个过程中,我们还将向你介绍HMM中非常重要的前向(Forward)算法以及(基于动态规划思想设计的)维特比(Viterbi)算法。最后再来讨论一下HMM在自然语言处理中的一个应用举例。...
分类:
编程语言 时间:
2016-05-07 07:03:29
阅读次数:
523
这里我将对大部分的资料进行裁剪整理,并非原创。 动态规划是一种重要的程序设计思想,具有广泛的应用价值。使用动态规划思想来设计算法,对于不少问题往往具有高时效,因而,对于能够使用动态规划思想来解决的问题,使用动态规划是比较明智的选择。 能够用动态规划解决的问题,往往是最优化问题,且问题的最优解(或特定
分类:
其他好文 时间:
2016-03-09 17:23:18
阅读次数:
121
用动态规划 思想是:每次计算后都保存当前的运行结果 f[i][j]表示串s[0···i-1]与从串p[0···j-1]的比较结果 首先,f[0][0]表示两空串比较结果为真 f[0][0]=true; 其次,当原串不为空时,无论p串是什么结果都为真,即f[i][0]=false; 而当原串为空时,需
分类:
其他好文 时间:
2016-02-24 20:44:37
阅读次数:
156
最短路,顾名思义就是对于一个连通图求起点到终点的最短距离: ①Floyd: 这是利用动态规划思想求得任意两点间的最短路,很简单;用dp[i][j]记录i到j的最短路长度,枚举i和j,再枚举一个k,若i到k的当前最短路与j到k的当前最短路之和大于i到j的当前最短路,则更新dp[i][j],即d...
分类:
其他好文 时间:
2015-11-19 22:41:52
阅读次数:
270
称号:该n骰子在地板上。所有点骰子的向上一面和一个S。进入n,打印S所有可能的值的概率。声明思想非原创!仅仅因动态规划思想的使用非常好,记下。分析:动态规划就是分阶段考虑问题。给出变量。找出相邻阶段间的关系。详细定义给忘了。1.如今变量有:骰子个数,点数和。当有k个骰子。点数和为n时。出现次数记为f...
分类:
其他好文 时间:
2015-07-10 08:07:25
阅读次数:
144
public class Solution { public String longestPalindrome(String s) { //本题是动态规划思想,构造一个数组pal[i][j],表示从i到j是否为一个回文, //pal[i][j]=true;if i=...
分类:
其他好文 时间:
2015-07-04 22:14:37
阅读次数:
236
Floyd算法
Floyd算法又称为插点法,是一种用于寻找给定的加权图中多源点之间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。
注意:由下面的练习可以看出,其实很多题目不是直接问你floyd怎么求最短路径,而是要你利用floyd的动态规划思想解决类似floyd的问题。
Floy...
分类:
编程语言 时间:
2015-04-04 19:46:50
阅读次数:
207
0-1背包问题:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这个问题的特点是:每种物品只有一件,可以选择放或者不放。算法基本思想:利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放...
分类:
其他好文 时间:
2015-03-31 19:47:31
阅读次数:
119
解决最大连续子序列和的两种方法:分治,动态规划。
分治时间复杂度虽然更高,但我还是写了一遍加深对这种思想的理解:将一个问题分治成若干个小的同样思路的子问题来解决。本题将所求序列等分成左右两个子序列,愿序列的最大子序列和必是左序列最大子序列和,有序列最大子序列和,跨左右子序列最大和三者中的最大者。
动态规划:用dp[i]更新dp[i+1]就行。
分治:
//
// main.cpp
// ...
分类:
其他好文 时间:
2015-03-09 14:33:35
阅读次数:
216