动态规划经典-dP
philophobia
这个作者很懒,什么都没留下…
展开
-
H - 数塔
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗? Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有原创 2017-08-10 21:06:00 · 164 阅读 · 0 评论 -
G - 子序列个数
子序列的定义:对于一个序列a=a1,a2,......an。则非空序列a'=ap1,ap2......apm为a的一个子序列,其中1<=p1<p2<.....<pm<=n。 例如4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a,有些子序列可能是相同的,这里只算做1个,请输出a的不同子序列的数量。由于答案比较大,输出Mod 10^9 + 7的结果即可原创 2017-08-10 19:40:31 · 155 阅读 · 0 评论 -
动态规划经典问题
子串:在给定的字符串中选取连续的一段 子序列:可以不连续,但是要保证出现的顺序与原字符串相同 比如字符串ABCDEFG ABC既是子串又是子序列 ACD只是子序列一、最大连续子序列和 给定一个整数序列A1,A2……An。求最大的连续的子序列的和。 比如{1,-2,3,1,-1,2}的最大连续子序列的和为5(3+1-1+2)万能枚举???每次枚举l和r,求区间[l,r]的和 时间复杂度O原创 2017-08-10 15:21:53 · 175 阅读 · 0 评论 -
F - 最长递增子序列
给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。Input 第1行:1个数N,N为序列的长度(2 <= N <= 50000) 第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= Si <= 10^9) Output原创 2017-08-10 14:50:26 · 228 阅读 · 1 评论 -
A - 最大子段和 B - 循环数组最大子段和
一: A - 最大子段和 N个整数组成的序列a1,a2,a3,…,an, 求该序列如ai+ai+1+…+aj 的连续子段和的最大值。当所给的整数均为负数时和为0。 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。 Input 第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N + 1行:N个整数原创 2017-08-09 23:46:42 · 438 阅读 · 0 评论 -
C - Common Subsequence E - 编辑距离 D - 最长公共子序列Lcs(dp经典!!)
一!!! 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 例如将kitten一字转成sitting: sitten (k->s) sittin (e->i) sitting (->g)原创 2017-08-09 20:03:26 · 525 阅读 · 0 评论