最大连续子序列Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 19895Accepted Submission(s): 8806Problem De...
分类:
其他好文 时间:
2014-11-22 21:22:08
阅读次数:
147
题目链接:hdu 4455 Substrings
题目大意:给定一个长度为N的序列,现在有Q次询问,每次给定一个w,表示长度,输出序列中长度为w的连续子序列
的权值和。序列的权值表示序列中不同元素的个数。
解题思路:递推,先预处理处每个位置和前面相同的数据的最短距离P。dp[i]表示说长度为i子序列的权值和,dp[i+1] =
dp[i] + v - c。v为[i+1~N...
分类:
编程语言 时间:
2014-11-18 00:27:51
阅读次数:
223
给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。Input第一行为两个正整数n和b ,第二行为1~n 的排列。Output输出一个整数,即中位数为b的连续子序列个数。Sample Input7 45 7 2 4 3 1 6...
分类:
其他好文 时间:
2014-11-14 17:33:12
阅读次数:
245
问题描述 : 数组 int A[] = {-4 , 3 ,56 , -15 , 34 , 0 , -14 , 4} ; 某几个连续的子序列其和最大,比如A0+A1 = -1 。A1+A2+A3+A4 = 78 。则A1,A2,A3,A4组成的数组即是所求。解决方案:1.暴力求解O(n3) 两层fo....
分类:
其他好文 时间:
2014-11-11 19:05:17
阅读次数:
181
看书、思考、写代码!
/***************************************
* copyright@hustyangju
* blog: http://blog.csdn.net/hustyangju
* 题目:分治法求数组最大连续子序列和
* 思路:分解成子问题+合并答案
* 时间复杂度:O(n lgn)
* 空间复杂度:O(1)
********...
分类:
编程语言 时间:
2014-11-05 23:17:53
阅读次数:
209
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003题目意思:即给出一串数据,求连续的子序列的最大和解题思路:因为我们很容易想到用一个max来存放找到的子序列的和中的最大值,通过不断比较,对max的值进行更新,最后我们就能够得到最大子序列的和,于是很...
分类:
其他好文 时间:
2014-11-03 22:25:03
阅读次数:
267
这一题目是要求连续子序列的最大和,所以在看到题目的一瞬间就想到的是把所有情况列举出来,再两个两个的比较,取最大的(即为更新最大值的意思),这样的思路很简单,但是会超时,时间复杂度为O(n^3),因为有三重for语句#include#define maxn 101000int main(){ int ...
分类:
其他好文 时间:
2014-11-03 01:20:40
阅读次数:
167
最大连续子序列之和问题描述为:数组中里有正数也有负数,连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值。分析,对数组a进行一遍扫描,sum[i] 为前i个元素中,包含第i个元素且和最大的连续子数组,MaxSum保存当前子数组中最大和,对于a[i+1]来说,sum.....
分类:
其他好文 时间:
2014-10-30 01:47:35
阅读次数:
234
题目大意:求使连续子序列的和最大的第一元素,最后一个元素和子序列的和
思路:动态规划的方法,主要是找到状态转移方程。将之前累加和加上当前值
与当前值做比较, 如果将之前累加和加上当前值>当前值,那么加上当前值,
最后一个元素变为i,如果将之前累加和加上当前值<当前值,那么sum[i] = a[i]
,并且改变第一元素为i,最后元素为i。具体看代码。
状态转移方程:sum[i]=max(sum[i-1]+a[i],a[i]);...
分类:
其他好文 时间:
2014-10-17 22:01:12
阅读次数:
236
题目大意:求使连续子序列的和最大的第一元素,最后一个元素位置,和子序列
的和
思路:动态规划的方法,主要是找到状态转移方程。将之前累加和加上当前值
与当前值做比较, 如果将之前累加和加上当前值>当前值,那么加上当前值,
最后一个元素位置变为i,如果将之前累加和加上当前值<当前值,那么sum[i] =
a[i],并且改变第一元素位置为i,最后元素位置为i。具体看代码。
状态转移方程:sum[i]=max(sum[i-1]+a[i],a[i]);...
分类:
其他好文 时间:
2014-10-17 22:00:36
阅读次数:
241