最近再学习算法和数据结构,推荐一本书:Data structures and Algorithm analysis in Java 3rd 以下的四种算法出自本书 四种最大子序列和的算法: 问题描述 给定(可能有负数)整数a(1)、a(2)、……a(n),求 a(1)+a(2)+……+a(j)的最大 ...
分类:
编程语言 时间:
2018-03-29 02:12:23
阅读次数:
195
问题 A: 最大子序列和问题 题目描述 给定一整数序列 a1, a2, …, an,求 a1~an 的一个子序列 ai~aj,使得从 ai 到 aj 的和最大。 只需要求出最大子序列的和,而不需要求出最大的那个序列。 给定一整数序列 a1, a2, …, an,求 a1~an 的一个子序列 ai~a ...
分类:
编程语言 时间:
2018-03-24 11:36:19
阅读次数:
471
"Educational Codeforces Round 39 (Rated for Div. 2) G" 题意: 给一个序列$a_i(1 k)$ 我们计算以k 1结尾的最长不下降子序列和后面某个$a_j(a_j = a_{k 1})$起始的最长不下降子序列拼接起来得到的长度,更新答案即可 先离散 ...
分类:
其他好文 时间:
2018-03-22 01:39:16
阅读次数:
137
问题链接 "Leetcode 516" 题目解析 求最长回文子序列。 解题思路 子序列和子串有区别的,子序列不需要连续,相对位置递增即可。 动态规划。对于任意字符串,如果头尾字符相同,那么字符串的最长回文子序列等于去掉首尾的字符串的最长回文子序列加上首尾;如果首尾字符不同,则最长子序列等于去掉头的字 ...
分类:
其他好文 时间:
2018-03-08 17:27:40
阅读次数:
122
动态规划类型总结 1.最长上升子序列,最大连续子序列和最长公共子序列(zxh,415--430,556--560,587--591,uva 11400,uva 11584,uva1625) 2.背包问题(uva 12563,金明的预算方案) 3.区间DP(zxh,488--502,算法导论相应题目) ...
分类:
其他好文 时间:
2018-02-24 13:09:55
阅读次数:
157
先把前面介绍的动态规划模型列举如下: (1)最大连续子序列和 令 dp[i] 表示以 A[i] 作为结尾的连续序列的最大和。 (2)最长不下降子序列(LIS) 令 dp[i] 表示以 A[i] 作为结尾的最长不下降子序列长度。 (3)最长公共子序列(LCS) 令 dp[i][j] 表示字符串 A 的 ...
分类:
其他好文 时间:
2018-02-10 20:09:36
阅读次数:
163
最大连续子序列和问题如下: 下面介绍动态规划的做法,复杂度为 O(n)。 步骤 1:令状态 dp[i] 表示以 A[i] 作为末尾的连续序列的最大和(这里是说 A[i] 必须作为连续序列的末尾)。 步骤 2:做如下考虑:因为 dp[i] 要求是必须以 A[i] 结尾的连续序列,那么只有两种情况: 对 ...
分类:
其他好文 时间:
2018-02-09 15:44:04
阅读次数:
106
2018.02.02 动态规划练习 1.登山 思路:就是一个同时找最长上升子序列和最长下降子序列的综合题。最后加起来取最大值。不过需要注意的是,不管是上山还是下山,第一个点都是要初始化的,这是边界条件。因为下山没有初始化,调了2h+的教训要记得。 核心代码: 1 #include <stdio.h> ...
分类:
其他好文 时间:
2018-02-03 12:59:57
阅读次数:
248
"欢迎fork and star:Nowcoder Repository github" 115. Distinct Subsequences 题目 解析 此题花费很多时间,对递推公式理解不清楚,用一维表示减少空间 对比最大公共子序列和子串 题目来源 "115. Distinct Subsequen ...
分类:
其他好文 时间:
2018-01-07 17:30:21
阅读次数:
232
题意 : 找出给定序列长度最小的子序列,子序列的和要求满足大于或者等于 S,如果存在则输出最小长度、否则输出 0(序列的元素都是大于 0 小于10000) 分析 : 有关子序列和的问题,都可以考虑采用先构造前缀和的方式来进行接下来的操作 ( 任意子序列的和都能由某两个前缀和的差表示 )。 二分做法 ...
分类:
其他好文 时间:
2017-12-12 21:32:38
阅读次数:
120