求一个序列的子序列的最大值,这是一个经典算法,这里稍作整理。
问题:任给一个整数序列,如{-2, 5, 7, 11, -4, 13, -5, -2, -6, 3, -1, 3},求出这个序列中连续子序列的和的最大值,这个例子中最大值为32,子序列为{5, 7, 11, -4, 13}。
方法一:最简单的暴力法。确立一个起点,一个终点,计算起点到终点的和。下面代码中int brute_force...
分类:
其他好文 时间:
2015-03-21 17:15:02
阅读次数:
179
链接:http://www.cnblogs.com/CCBB/archive/2009/04/25/1443455.html最大子序列和问题问题描述:输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -413 -5 -2,则最大...
分类:
其他好文 时间:
2015-03-20 20:25:59
阅读次数:
206
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2653题解:不愧是CLJ的题。Orz 有关中位数的题一般可以二分,大于的标记为1,小于的标记为-1。这样本题单词询问只要求最大子序列连续和即可,线段树搞定。但多次询问。 当二分的值只有...
分类:
其他好文 时间:
2015-03-15 19:43:47
阅读次数:
162
输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:
序列:-2 11 -4 13 -5 -2,则最大子序列和为20。
序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16
#include
int main()
{
void res(int num[],int n);
in...
分类:
其他好文 时间:
2015-03-13 20:50:27
阅读次数:
138
解决最大连续子序列和的两种方法:分治,动态规划。
分治时间复杂度虽然更高,但我还是写了一遍加深对这种思想的理解:将一个问题分治成若干个小的同样思路的子问题来解决。本题将所求序列等分成左右两个子序列,愿序列的最大子序列和必是左序列最大子序列和,有序列最大子序列和,跨左右子序列最大和三者中的最大者。
动态规划:用dp[i]更新dp[i+1]就行。
分治:
//
// main.cpp
// ...
分类:
其他好文 时间:
2015-03-09 14:33:35
阅读次数:
216
例题:timus1146. Maximum Sum最大子矩阵可转化为最打子序列问题,最长子序列可以这样做:设a[N],则a[N]的最大子序列有两种可能(1)一直连续到a[i]。(2)从a[i]开始 。(如果不包括a[i]则之前已经算好,不用管)。则可以利用这个循环来求最大子序列int maxl(in...
分类:
其他好文 时间:
2015-03-08 21:31:17
阅读次数:
128
URAL 1296. Hyperjump(最大子序列和)...
分类:
其他好文 时间:
2015-03-07 11:35:23
阅读次数:
120
这是一个入门级的算法,但它却揭示了计算机算法设计的一些核心思想:枚举与分治递归。这篇文章主要由简单到复杂来解析这一问题,流程大致是:枚举求解(充分利用计算机的计算能力来解决单调复杂问题),算法分析与改进(相对偏移化简枚举法),分治算法(divide-conquer,计算机核心思想之一),递归算法与递...
分类:
编程语言 时间:
2015-03-01 00:14:24
阅读次数:
330
1 #include 2 using namespace std; 3 4 void FIND_MAX_CROSSING_SUBARRAY(int * const A,const int &low,const int &mid,const int &high,int &max_left,int...
分类:
其他好文 时间:
2015-02-28 16:20:45
阅读次数:
122
转自 http://www.cnblogs.com/CCBB/archive/2009/04/25/1443455.html问题描述:输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -4 13 -5 -2,则最大子序列和为20...
分类:
其他好文 时间:
2015-02-10 13:09:14
阅读次数:
199