![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划
动态规划
Leida_hzm
一步一个脚印,踏踏实实搞技术
展开
-
最长公共子序列(dp经典题)
描述我们称序列Z = < z1, z2, …, zk >是序列X = < x1, x2, …, xm >的子序列当且仅当存在 严格上升 的序列< i1, i2, …, ik >,使得对j = 1, 2, … ,k, 有xij = zj。比如Z = < a, b, f, c > 是X = < a, b, c, f, b, c >的子序列。现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子原创 2020-10-12 19:21:16 · 325 阅读 · 0 评论 -
最长上升子序列(dp+二分)
题目描述一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8).你的任务原创 2020-10-12 17:51:54 · 199 阅读 · 0 评论 -
P2347 砝码称重(背包 巧解)
题目来自->P2347 砝码称重题目描述设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重\le 1000≤1000),输入格式输入方式:a1,a2,a3, a4,a5 ,a6(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)输出格式输出方式:Total=N(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)输入输出样例输入1 1 0 0 0 0输出Total=3解法一:01背包思想:记录0到1000重量是否成立,用1原创 2020-10-05 23:46:20 · 657 阅读 · 1 评论 -
P1115 最大子段和(dp)
题目描述给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个整数,表示序列的长度 n。第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai 。输出格式输出一行一个整数表示答案。输入输出样例输入72 -4 3 -1 2 -4 3输出4说明/提示样例 1 解释选取 [3, 5]子段{3,−1,2},其和为 4。思路一道标准的dp简单题,s代表此时的和,遍历,更新最大子段和sum,如果s <= 0则s = 0;原创 2020-10-03 22:32:24 · 203 阅读 · 0 评论 -
数字三角形(动态规划入门题)
题目描述73 88 1 02 7 4 44 5 2 6 5(图1)图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数。输入输入的是一行是一个整数N (1 < N <= 100),给出三角形的行数。下面的N行给出数字三角形。数字三角形上的数的范围都在0和100之间原创 2020-09-09 20:45:27 · 750 阅读 · 0 评论