问题描述: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。 算法一: //穷举法,复杂 ...
分类:
其他好文 时间:
2016-08-13 06:31:53
阅读次数:
154
hdu5791 dp[i][j]表示的是序列A前i个数字和序列B前j个数字的公共子序列的总个数,那么的dp公式就可以这么表示 理解一下此公式若最尾部的a[i]和b[j]相等的话,那么单独的a[i]和b[j]组成1个相同子序列。 同时我们可以想一下之前的前i-1个子序列和前j-i个子序列再加上a[i] ...
分类:
其他好文 时间:
2016-08-11 15:56:41
阅读次数:
219
最大子序列和 题目描述 输入一个长度为n的整数序列(A1,A2,…,An),从中找出一段连续的长度不超过M的子序列,使得这个子序列的和最大。例如:序列1,-3,5,l,-2,3,当M = 2或3时,S = 5 + 1 = 6;当M = 4时,S = 5 + 1 +(-2)+ 3 = 7。 输入一个长 ...
分类:
其他好文 时间:
2016-08-06 00:21:50
阅读次数:
238
问题描述: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。 O(n)解法: ...
分类:
其他好文 时间:
2016-07-31 17:19:18
阅读次数:
121
A题 子序列和啊,就要想到前缀和的差。这个转换一定要!记着!那么i到j的一段子序列和Sij%m == 0就等价于(Sj-Si-1)%m == 0 了,那么什么意思呢?就是如果有两段前缀和%m的模是一样的,那么是不是就存在着一段子序列满足条件了,然后注意一下边边角角应该就没问题了。因为ZOJ坏掉了,所 ...
分类:
其他好文 时间:
2016-07-31 12:59:14
阅读次数:
156
书中用求解最大子序列和的方式介绍了分治算法(divide-and-conquer) 分治算法是一种相对快速的算法 运行时间为O(logN) 最大子序列和的问题如下: 给出一组整数 A1 A2 … AN 求∑jk=i Ak 若所有整数均为负 则最大子序列和为0 e.g. 输入-2, 11,-4, 13 ...
分类:
编程语言 时间:
2016-07-21 22:00:23
阅读次数:
185
题目描述:给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。注意:最大连续子序列和如果为负,则返回0;而本题目中的最...
分类:
其他好文 时间:
2016-07-19 10:54:03
阅读次数:
116
给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1
注:为方便起见,如果所有整数均为负数,则最大子序列和为0。
算法一,穷举法,找出所有子数组,然后求出子数组的和,在所有子数组的和中取最大值
/*O(n^3)穷举法
* 缺点:重复累加,与maxSum比较,每次i->j中间累加完了才与maxSum比较...
分类:
其他好文 时间:
2016-07-19 10:13:37
阅读次数:
130
参考书籍《数据结构与算法分析:C语言描述》 ...
分类:
其他好文 时间:
2016-07-14 02:02:50
阅读次数:
181
动态规划师通过组合子问题的解而解决整个问题,将问题划分成子问题,递归地求解各子问题,然后合并子问题的解而得到原问题的解。和分治算法思想一致,不同的是分治算法适合独立的子问题,而对于非独立的子问题,即各子问题中包含公共的子子问题,若采用分治法会重复求解,动态规划将子问题结果保存在一张表中,避免重复子问题重复求解。
动态规划在多值中选择一个最优解,其算法设计一般分为4个步骤:描述最优解的结构;递归定...
分类:
编程语言 时间:
2016-07-06 15:04:10
阅读次数:
297