今天跟大家分享下算法思想中比较难的一种"动态规划",动态规划给人像是作战时常用的“迂回战术”,或者说是游击战,在运动中寻找突破口。一: 思想 首先要了解”动态规划“,必须先知道什么叫做”多阶段决策“,百科里面对这个问题解释的很全,我就load一段出来,大家得要好好品味,好好分析。上面图中最后一句话就...
分类:
其他好文 时间:
2014-08-30 21:40:20
阅读次数:
259
【设计一个动态规划算法的四个步骤】
1、刻画一个最优解的特征。
2、递归地定义最优解的值。
3、计算最优解的值,通常采用自底向上方法。
4、利用计算出的信息构造一个最优解。
【最优子结构(optimal substructure)】
问题的最优解由相关子问题的最优解组合而成,而这些子问题可以独立求解。
【动态规划两种等价实现方法】
1、 带备忘的自顶向下法(top-down...
分类:
其他好文 时间:
2014-08-30 15:12:29
阅读次数:
219
题意:给定一个 m * n 的网格,网格中有非负的数字。
一个机器人要从左上角走到右下角,每次只能向下或向右移动一个位置,
找出一条总和最小的路径,返回最小值
思路1:记忆化搜索
使用一个两维 minPathSums[i][j]记录 (i,j)到(m,n)的总和最小的路径的值
然后使用dfs 枚举
复杂度:时间O(2^n) 空间O(n)
思路2:dp
设置状态为f[i][j],表示到达网格(i,j)的总和最小的路径的值,则状态转移方程为
f[i][j] = min(f[i - 1][j] + f[i][...
分类:
其他好文 时间:
2014-08-30 13:56:19
阅读次数:
216
第一题:笨小猴模拟第二题:火柴棒等式搜索深搜不用说,确定出两个加数然后判断能否拼出等式。枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解。不过这题的数据貌似很温和,我从 0~1000 枚举也能过。第三题:传纸条多线程动态规划跟 2000 年的方格取数很像。还是看做两个人同时从左上...
分类:
其他好文 时间:
2014-08-29 22:39:18
阅读次数:
245
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
Unique Paths II
Total Accepted: 13655 Total
Submissions: 49081My Submissions
Follow up for "Unique Paths":
Now consider i...
分类:
其他好文 时间:
2014-08-29 16:12:34
阅读次数:
236
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
Unique Paths
Total Accepted: 17915 Total
Submissions: 57061My Submissions
A robot is located at the top-left corner of a m...
分类:
其他好文 时间:
2014-08-29 13:10:17
阅读次数:
271
这个专题充分暴露了不认真思考的缺点,总是感觉差不多就下手。
对于A题目,以为是强连通分量缩点。但实际上是求桥。
并考虑:1.重边 2.权重为0则初始值不能赋值为0,当选取权重为0的边答案为1 3.没有答案。
对于B题目,起初想得很复杂,以为是动态规划,一直在思考转移方程。但其实DFS就可以,但漏掉了形成正方形的另一个条件,底边平行。
对于C题目,这里又出现了漏洞(直接DFS不用考虑这些)...
分类:
其他好文 时间:
2014-08-29 09:29:27
阅读次数:
220
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
Candy
Total Accepted: 16494 Total
Submissions: 87468My Submissions
There are N children standing in a line. Each child is ...
分类:
其他好文 时间:
2014-08-29 02:54:17
阅读次数:
228
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
Trapping Rain Water
Total Accepted: 14568 Total
Submissions: 50810My Submissions
Given n non-negative integers representin...
分类:
移动开发 时间:
2014-08-29 01:24:36
阅读次数:
238
第一题:能量项链 区间型动态规划 据说这题在当年坑了很多人。f(i, j) 表示从第i个珠子开始合并j个珠子所释放的最大能量。f(i, j) = max{ f(i, k} + f(i+k, j-k) + head(i) * head(i+k) * head(i+j) , 0 0,先做完上面的步骤,然...
分类:
其他好文 时间:
2014-08-28 23:55:06
阅读次数:
275