码迷,mamicode.com
首页 >  
搜索关键字:动态规划    ( 6061个结果
建模算法(四)——动态规划
其实我们对着规划接触的最多最熟悉,简单来说就是一个递归问题,递归问题简单的在的地方,编程实现的难度下降了,难的地方是如何构造递归,不好的地方是资源的浪费,但是有些地方编程实现的简单的优势可以无视掉他的不足(汉莫塔问题) 下面是一个很规矩的构建动态规划的方法 个人认为最重要的地方就是有两个,一个是抓住...
分类:编程语言   时间:2015-02-01 20:19:16    阅读次数:317
[经典面试题][网易]数组分割
【题目】 任意2N个正整数,从其中选出N个整数,使得选出的N个整数和同剩下的N个整数之和的差最小。 【来源】 网易 【分析】 假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略。 从2N个数中找N个元素,有三种可能:大于Sum/2,小于Sum/2以及等于Sum/2。而大于Sum/2与小于等于Sum/2没区别,故可以只考虑小于等于Sum/2的情况。 令S(...
分类:编程语言   时间:2015-02-01 13:34:17    阅读次数:304
滚动数组 (定义和用法)
滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。 一个简单的例子: 斐波那契数列: 一般代码: #include #include using namespace std; int Fib[...
分类:编程语言   时间:2015-01-31 22:00:09    阅读次数:380
Floyd-Warshall 全源最短路径算法
Floyd-Warshall 算法采用动态规划方案来解决在一个有向图 G = (V, E) 上每对顶点间的最短路径问题,其中图 G 允许存在权值为负的边,但不存在权值为负的回路。Floyd-Warshall 算法的运行时间为 Θ(V^3)。Floyd-Warshall 算法的设计基于了如下观察。设带...
分类:编程语言   时间:2015-01-31 10:36:26    阅读次数:322
最长单增子序列问题
问题描述:有一个长为n的数列a0,a1,a2........a(n-1)。请求出这个序列中最长的单增子序列的长度。单增子序列的定义是:对于任意的 i       这个问题就是著名的最长单增子序列(LIS)问题。对于这道问题,我们可以利用动态规划来进行求解:假设dp[i]表示以a[i]为末尾的最长单增子序列的长度,则在得到dp[i]时,我们可以这样做:初始化dp[i]为1,利用一个j变量遍历已经访...
分类:其他好文   时间:2015-01-30 22:56:15    阅读次数:259
【算法导论】0-1背包问题
0-1背包问题描述: 已知:小偷在店里偷东西,小偷只带了一个最大承重为W的背包,商店里有N件商品,第i件商品的重量是weight[i],价钱是value[i]。 限制:每种商品只有一件,可以选择拿或者不拿,不能分割,不能只拿一件商品的一部分(所以叫做0-1,0即不拿,1则整个拿走,且一种商品有且只有一件可供拿走) 问题:在不超过背包最大承重的情况下,最多能拿走多少钱的商品...
分类:编程语言   时间:2015-01-30 22:43:45    阅读次数:296
Leetcode#5 Longest Palindromic Substring
原题地址最初的想法是用动态规划,令palin[i][j]表示s[i..j]是否是回文串,则有递推公式palin[i][j] = s[i] == s[j] && palin[i+1][j-1]。因为递推式只使用相邻层的值,所以编码的时候可以将二维状态数组压缩成一维的。代码: 1 string long...
分类:其他好文   时间:2015-01-30 17:03:05    阅读次数:105
动态规划经典例题之传纸条
传纸条(NOIP2008,Vijos-1493) 题目描述: 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。...
分类:其他好文   时间:2015-01-30 10:49:44    阅读次数:483
Leetcode#152 Maximum Product Subarray
原题地址简单动态规划,跟最大子串和类似。一维状态空间可以经过压缩变成常数空间。代码: 1 int maxProduct(int A[], int n) { 2 if (n = 0; i--) {10 int tmp = minp;11 ...
分类:其他好文   时间:2015-01-30 10:36:58    阅读次数:179
LeetCode总结 -- 一维动态规划篇
这篇文章的主题是动态规划, 主要介绍LeetCode中一维动态规划的题目, 列表如下:Climbing StairsDecode WaysUnique Binary Search TreesMaximum SubarrayMaximum Product SubarrayBest Time to Bu...
分类:其他好文   时间:2015-01-30 06:35:32    阅读次数:195
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!