一开始,看到这题,以为是最大连续子序列和的问题,写出了代码,提交了,WR,找了一些测试数据,结果发现这个算法并不能将所以的序列的解求出,只是满足一部分序列。
百度了一下,知道了要用单调队列来求解。
单调队列,也就是队列中必然是单调递减的或者递增的。而这题使用的是单调递增的队列。
单调队列使用的是双向队列,队尾队头都可以删除元素,只能从队尾插入元素。
比如求解一个数列{1 ,2 ,5 ,...
分类:
其他好文 时间:
2015-05-05 14:35:54
阅读次数:
173
这题,简单的动态规划,也就是求最大连续子序列的和,是和最大。
知道了这个,就可以很容易的写出代码来了。
状态转移方程:dp[i] = max{ dp[j] } + a[i] ( j >= 0 && j
有了状态转移方程,一切都是很简单了。
下面的是一次AC的代码:
#include
using namespace std;
int main()
{
int dp[1005], a...
分类:
其他好文 时间:
2015-05-03 12:00:59
阅读次数:
116
设计思路:把数按行分成几个一维数组,对于该一维数组,求出他们的最大连续数组之和,并且记录下最大连续数组的第一位和最后一位的位置,之后判断几个一维数组的最大连续数组的位置是否相接或包括,最后在加上没有包括的正数,输出之前之和就行。 1 #include 2 using namespace std; 3...
分类:
移动开发 时间:
2015-04-28 22:22:59
阅读次数:
128
标记线段树的时候利用 lsum rsum msum 记录最左边 zui右边 以及整个区间的最大连续空位的值
维护的时候注意合并#include
#include
#include
using namespace std;
#define lson (pos<<1)
#define rson (pos<<1|1)
const int maxn = 55555;
int n,m;
struct No...
分类:
其他好文 时间:
2015-04-27 16:54:37
阅读次数:
97
题意 有n个连在一起的地道 接下来有m个操作 D x 炸掉x号地道 炸掉后x所在的区间就不连续了 Q x 查询输出包括x的最大连续区间长度 R修复最后一个被炸的地道 注意输入R时可能并没有需要修复的地道
线段树的区间合并问题 线段树要维护3个信息
len 对应区间的最大连续长度
ll 对应区间最左端的一段连续长度
lr 对应区间最右端的一段连续...
分类:
其他好文 时间:
2015-04-22 15:18:38
阅读次数:
111
题意:有n个数字围成一个圈,然后从圆圈拿走连续的一些数,问拿走的数的和的最大值是多少。
题解:普通最大连续和的做法,如果前面累加的数加当前数是大于最大值就更新最大值,如果小于0就把累加值清零,这个是有环的,那么可以从两种情况考虑,一种是普通的最大连续和找到的最大值,另一种就是头尾拼接的,把所有数取相反数,然后找到最大连续和,那么用总和sum加这个数就是头尾拼接的最大值,取两种情况较大的就是解。
...
分类:
其他好文 时间:
2015-04-16 01:31:42
阅读次数:
134
题目大意: 对整数串S,求其两个不相交的子串s1、s2,使得s1+s2的值最大。方法:DP, lt[i]代表以第i个元素结尾的串最大值
rt[i]代表以第i个元素开头的串的最大值
那么设置一个rtm[i]代表取后i个元素之中最大连续子串的和很显然,lt[i]=max(a[i],lt[i-1]+a[i]);
rt[i]=max(a[i],rt[i+1]+a[i]);
rtm[i]=ma...
分类:
其他好文 时间:
2015-04-15 21:31:49
阅读次数:
142
/*最大连续子序列*/class Solution {public: int maxSubArray(int A[], int n) { if(!n) return 0; int result = A[0],temp =0 ; for(int i = ...
分类:
其他好文 时间:
2015-04-11 16:05:23
阅读次数:
116
给定一个整数序列(可能有正数,0和负数),求它的一个连续最大子序列乘积,如果乘积为负数,输出-1样例输入:324-3525-12-1样例输出:820连续子序列有俩个要素,起点和终点,因此只需要枚举起点和终点即可,由于每个元素的绝对值不超过10,一共不超过18个元素,最大可能的成绩不会超过10^18,...
分类:
其他好文 时间:
2015-04-10 21:46:39
阅读次数:
132
题目:Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [?2,1,?3,4,?1,2,1,?5,4],
the contiguo...
分类:
其他好文 时间:
2015-04-09 17:25:35
阅读次数:
171