动态规划经典题目整理
动态规划经典题目整理
- 背包问题
- 最长公共子串问题
- 连续数组最大和问题
- 持续增加中。。。。
背包问题
复杂度 O(nW)O(nW)O(nW)
nnn为物品种类,WWW是背包的重量
目的:使得背包中的物品价值最大化
单副本背包问题:(每种物品只有一件)
K(w,j)=max{K(w−wj,j−1)+vj,K(w,j−1)}K(w,j)=max\{K(w-w_j,j-1)+v_j,K(w,j-1)\}K(w,j)=max{K(w−wj,j−1)+vj,K(w,j−1)}K(w,j)K(w,j)K(w,j)代表背包重量为WWW,有jjj件物品时候的最大价值
vjv_jvj为第jjj种物品的价值多副本背包问题:(每种物品有无数件)
K(w)=max{K(w−wi)+vi:wi<=w}K(w)=max\{K(w-w_i)+v_i:w_i<=w\}K(w)=max{K(w−wi)+vi:wi<=w}
最长公共子串问题
博客入口
问题描述: 设有s[m]s[m]s[m],和t[n]t[n]t[n]两个字符串,要找他们最长的公共子串
解:
设置一个变量 存储最长公共子串的长度
long=0;
c(i,j)=s[i]==s[j]?c(i-1,j-1)+1:0
每次如果 c(i,j)>long
那么 long=c(i,j)
设两个子序列的长度分别为mmm,nnn
那么时间复杂度就为O(mn)O(mn)O(mn)
连续数组最大和问题
例子:
给定一个数组如:
{-2, 11, -4, 13, -5, -2 }
该数组的最大和为 i=2, j=4的时候 11-4+13=20
算法:
int sum=0, b=0;for(int i=1;i<=n;++i){if(b>0){b+=a[i];}else{b=a[i]}if(b>sum)sum=b;
}
return sum;
复杂度:O(n)O(n)O(n)
持续增加中。。。。
动态规划经典题目整理相关推荐
- 动态规划经典题目_动态规划经典题目:鸡蛋掉落(附视频讲解)
题目: 思路: 先放上视频讲解 动态规划经典题目:鸡蛋掉落https://www.zhihu.com/video/1225199247848513536 纠正:视频里的状态转移方程漏写了一个+1,意思 ...
- 动态规划经典题目-最小权三角剖分
文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 设A是顶点为0,1,-,n-1的n凸多边 ...
- 动态规划经典题目——最大子矩阵和
一.题目 题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和.例子如下图所示: 它的最大子矩阵的和为15: 二.解题思路 此题的解法与动态规划经典题目--最大连续子序列之和题目思想一样,只 ...
- 动态规划经典题目-数据压缩之图像压缩
文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 计算机中的图像由一系列像点构成,每个 ...
- poj动态规划经典题目
列表一:经典题目题号: 容易: 1018, 1050, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1 ...
- 动态规划经典题目总结
微信公众号 在算法中,动态规划题目算是比较经典的一类题目.在找工作中,不管是笔试,还是面试,我们经常会遇到用动态规划来解决问题的情况,有时候面试官还需要我们现场手写出动态规划解法的代码.因此,在求职中 ...
- 动态规划经典题目汇总
http://www.cppblog.com/doer-xee/archive/2009/12/05/102629.html 转载之前先Orz一下: [s:19] Robberies http://a ...
- 动态规划经典题目——数塔问题
一.题目 数塔问题 :要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 二.解题思路 动态规划解题思路可详见另一篇文章.数塔中元素用二维数组a[][]表示 ①定义状态 ...
- 动态规划经典问题整理
单序列: 最长连续递增序列 最长递增子序列 最长递增子序列的个数 最大子序和 最大整除子集 爬楼梯最长定差子序列 爬楼梯 使用最小花费爬楼梯 比特位计数 旋转数字 把数字翻译成字符串 青 ...
最新文章
- linux cp 强制覆盖_Linux基本操作教程
- linux cgi转发串口数据库,CGI连接数据库的方法
- 私有化预期终于落地,海尔智家将迎来更多可能!
- MATLAB中unzip出错,node.js里unzip出错的处理
- POJ - 2115 C Looooops(扩展欧几里得)
- 【渝粤教育】国家开放大学2018年春季 8659-22T计算机平面设计(1)(2) 参考试题
- REVERSE-PRACTICE-BUUCTF-9
- LeetCode 1859. 将句子排序
- Redis之缓存设计
- @property括号内属性讲解
- 开始VC6学习之旅2
- 0-5v转0-20ma和0-5v转4-20ma
- 关于现代计算机的知识,从资本经济到知识经济:现代计算机的知识革命
- 基于Java的体育场地预约系统
- 一步步教你如何配置Java环境变量(超级详细)
- 华为服务变革转型ITR流程再造的核心精髓许浩明老师一篇文章总结!
- ElasticSearch之别名_aliases
- 爬虫实战5:豆瓣读书爬取
- 机床测头应用二:自动补偿功能,提升生产良率
- 什么是网络爬虫,网络爬虫有什么用?