1 #include 2 #include 3 4 using namespace std; 5 const int maxn = 10000; 6 int num[maxn+5]; 7 8 int main() 9 {10 int k;11 while(scanf("%d...
分类:
其他好文 时间:
2014-12-15 00:03:22
阅读次数:
295
给你一段包含负数的序列,问你这段序列的最大和是多少?并且打印出最大和区间?例如假设有两个序列如下: 5: 6 -1 5 4 -7 7: 0 6 -1 1 -6 7 -5 很容易看出第一个包含5个元素的序列的最大和是14.区间从1到4.第二个最大和是7,区间可以有两个,从1到6或则从6到6...
分类:
其他好文 时间:
2014-12-14 18:33:01
阅读次数:
145
17.8 给定一个整数数组(有正数和负数),找出总和最大的连续序列,并返回总和。解法:就是求连续子序列的和最大,不过存在一个问题:假设整个数组都是负数,怎么样才是正确的行为呢?看看这个简单的数组{-3,-10,-5},一下答案每个都可以说的通:-3(假设子序列不能为空)0(子序列的长度为空)INT_...
分类:
其他好文 时间:
2014-12-13 10:46:11
阅读次数:
153
Max SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 154155Accepted Submission(s): 35958Problem ...
分类:
其他好文 时间:
2014-12-12 16:12:06
阅读次数:
289
本文详细介绍了最大连续子序列之和的5种算法,从低效到高效,从蛮力穷举到分治策略,再到动态规划。还给出了此问题的一个扩展:求j组最大连续子序列之和。内容较多,欢迎关注。...
分类:
编程语言 时间:
2014-12-10 10:54:31
阅读次数:
276
题意一个序列的LIS为MAX, 求连续子序列的LIS为MAX的个数。先求出LIS,记录以a[i]结尾的LIS的长度,以及LIS起始位置(靠右的起始位置)。然后线性扫一遍,,线段树与树状数组的差距还是蛮大的,,线段树900+MS,险些超时,而树状数组仅仅400+MS代码里注释部分为线段树做法。 1 ....
分类:
其他好文 时间:
2014-12-08 15:19:44
阅读次数:
187
题意:如果一个序列的任意连续子序列中至少有一个只出现一次的元素,则称这个序列是不无聊的。判断一个长度为n(n<=200000)的序列是不是无聊的。
解法:搞个map记录每个数前一个数的位置,判断以每个数结尾的所有区间是否合法,其中用到线段树访问区间最小值。
代码:/******************************************************
* ...
分类:
其他好文 时间:
2014-11-28 01:06:50
阅读次数:
274
题目大意:给你一个N,接下来是N*N的矩阵。数有正有负,求最大的子矩阵
和。
思路:1003题是一维的求连续子序列最大和,dp[i] = max(dp[i-1]+a[i],a[i])
这道题是求二维的子矩阵最大和。考虑将二维转化为一维的。二维数组的每一
行都可以看做一个一维数组。map[i][j]数组上存的是第i行前j列上的和
第k行上,dp[k][i] = max(dp[k][i-1]+map[k][i],map[k][i]),但是这样只能知道
第k行前i个数的最大和是多少,而不知道是第k行上从第几列到第...
分类:
其他好文 时间:
2014-11-26 16:30:23
阅读次数:
272
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003简单dp,状态转移方程:sum[i] = max{sum[i-1]+a[i],a[i]}. (sum[i]记录以a[i]为子序列末端的最大连续和.)对于a[i]这个数字,我们考虑是否将它选入之前连续的序...
分类:
其他好文 时间:
2014-11-24 20:41:32
阅读次数:
216
Description给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。Input第一行为两个正整数n和b ,第二行为1~n 的排列。Output输出一个整数,即中位数为b的连续子序列个数。Sample Input7 45 ...
分类:
其他好文 时间:
2014-11-23 17:23:13
阅读次数:
219