题目:http://acm.hdu.edu.cn/showproblem.php?pid=4223求连续子序列和的最小绝对值,水题。#include #include #include #include #include #define inf 0x3f3f3f3fusing namespace s...
分类:
其他好文 时间:
2015-03-31 19:26:44
阅读次数:
127
题目描述:求一个序列中连续子序列和的最大值(如果全为负,则输出0)分析思路:简单的DP题1.分析:最开始想到的是分治,分治的复杂度是O[n*lb(n)][姑且把lb当做以2为底的对数],由于分治的时候遇到连接处的处理问题,一不小心就想到了原来这是DP题。2.状态转移方程:(1)sum[i]=max{...
分类:
其他好文 时间:
2015-03-11 21:32:59
阅读次数:
153
和之前的一题很像,直接套用。
#include
using namespace std;
int main()
{
int a[10001];
int n,i;
int sum,maxsum,start,maxstart,maxend;
while(cin>>n && n)
{
for(i=0;i<...
分类:
其他好文 时间:
2015-03-11 19:42:16
阅读次数:
147
解决最大连续子序列和的两种方法:分治,动态规划。
分治时间复杂度虽然更高,但我还是写了一遍加深对这种思想的理解:将一个问题分治成若干个小的同样思路的子问题来解决。本题将所求序列等分成左右两个子序列,愿序列的最大子序列和必是左序列最大子序列和,有序列最大子序列和,跨左右子序列最大和三者中的最大者。
动态规划:用dp[i]更新dp[i+1]就行。
分治:
//
// main.cpp
// ...
分类:
其他好文 时间:
2015-03-09 14:33:35
阅读次数:
216
问题描述
给定一个整数序列(可能有正数,0和负数),求它的一个最大连续子序列乘积。比如给定数组a={3, -4, -5, 6, -2},则最大连续子序列乘积为360,即3*(-4)*(-5)*6=360。
分析
求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0。
假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来...
分类:
其他好文 时间:
2015-01-08 22:47:32
阅读次数:
299
题目: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
问题描述 : 数组 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
HDU 3308 LCIS
题目链接
题意:一个序列,每次询问一个区间内最长连续上升子序列,或者修改一个位置的值
思路:线段树的区间合并,和最长连续子序列和是一样的思路,记录lsum, rsum, sum,表示左边连续长度,右边连续长度,和区间最长长度,然后pushup的时候进行区间合并操作即可
代码:
#include
#include
#include
us...
分类:
其他好文 时间:
2014-10-13 18:35:17
阅读次数:
200