正子专题

最小最序列和以及最小正子序列

1.描述:最小子序列(序列之和最小)   思路:用编程之美上的分治解法。子数组存在三种情况:            (1)左边的字数组里面arr[1...n/2]            (2)右边的子数组里面arr[n/2+1...n]            (3)要么在中间 arr[start..n/2....end];   代码: #include<iostream>using n

最大子段和(51Nod 1049)、最小正子段和(51Nod 1065)、总结(最小子段和、最大子段和、最小正子段和)

最大子段和 一.问题描述 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和.例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4]. 二.例题 51Nod 1049 N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a

最小正子段和 51Nod - 1065

最小正子段和 题目链接:51Nod - 1065题意:找出一个连续的子序列, 使得子段和为正数, 找出最小的一个子段和;这个题乍一看很熟悉, 有没有想起最大子段和那道题???!!!很兴奋吧, 动归???最大子段和是这样求得O(n)的复杂度;那么这个题一样吗?答案是否定的;遇上这种连续序列的题多想一想前缀和;思路是这样的:求出前缀和,用结构体存, sum表示前缀和, id表示排序前该数的下标