给出一个整数数组a(正负数都有),如何找出一个连续子数组(可以一个都不取,那么结果为0),使得其中的和最大? 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。 看见这个问题你的第一反应是用什么算法? (1) 枚举?对,枚举是万能的!枚举什么?子数组的位置!好枚举 ...
分类:
其他好文 时间:
2016-12-25 09:29:49
阅读次数:
243
Description 在长度为的序列中选出段互不相交的子段,求最大字段和. Input 第一行两个整数. 第二行个整数. Output 一行一个整数表示最大值. Sample Input 5 2 10 -1 10 -1 10 Sample Output 29 HINT Solution 如果序列中... ...
分类:
其他好文 时间:
2016-11-18 00:16:17
阅读次数:
271
Maximum sum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39599 Accepted: 12370 Description Given a set of n integers: A={a1, a2,..., an} ...
分类:
其他好文 时间:
2016-11-04 01:25:01
阅读次数:
259
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 这道题的最大子段和有两种可能,一种是常规的子段和,另一种是从结尾到开头的一个子段。常规做是一种可能,另一种带循环的则可以认为是序列中间有一段最小子段和,把这 ...
分类:
编程语言 时间:
2016-10-24 20:55:05
阅读次数:
161
http://codevs.cn/problem/2630/ Solution 预处理f[i][j],代表第j列前i行的代价 枚举上下界,然后做最大子段和,g[i]代表选到第i列的代价, g[k]=(g[k-1]<0?0:g[k-1])+f[j][k]-f[i-1][k] 复杂度O(n^3) Not ...
分类:
其他好文 时间:
2016-10-18 22:55:42
阅读次数:
121
题意:给一段数列,将这个数列分成两部分,使两部分的最大子段和的和最大,输出和 /* 看数据没想到是(O)n的算法,求出从前向后的最大子段和和从后向前的最大子段和, 然后枚举断点。 第一次提交不小心折在数组最小值的赋值上…… */ #include<cstdio> #include<iostream> ...
分类:
其他好文 时间:
2016-10-06 22:09:23
阅读次数:
171
题目链接:51nod 1051 最大子矩阵和 实质是把最大子段和扩展到二维。读题注意m,n。。。 1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #include<algorithm> 5 #define CLR(a,b) me ...
分类:
其他好文 时间:
2016-10-06 19:32:17
阅读次数:
118
题目链接:51nod 1050 循环数组最大子段和 1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 const int N = 50001; 5 long long a[N]; 6 int main(){ 7 in ...
分类:
编程语言 时间:
2016-10-03 19:12:48
阅读次数:
159