HDU 1231最大连续子序列
来源:互联网 发布:百合 知乎 编辑:程序博客网 时间:2024/06/16 19:00
Problem Description
给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ...,
Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,
例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。
在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还需要输出该 子序列的第一个和最后一个元素。
Sample Input
6
-2 11 -4 13 -5 -2
10
-10 1 2 3 4 -5 -23 3 7 -21
6
5 -8 3 2 5 0
1
10
3
-1 -5 -2
3
-1 0 -2
0
Sample Output
20 11 13
10 1 4
10 3 5
10 10 10
0 -1 -2
0 0 0
#include<iostream>using namespace std;#define maxn 10005int array[maxn],dp[maxn];int main(){ int n,i,start,end,left,submax; while(scanf("%d",&n)&&n!=0) { for(i=0;i<n;i++) scanf("%d",&array[i]); dp[0]=submax=array[0]; start=end=array[0]; for(i=1;i<n;i++) { if(array[i]>submax+array[i]) submax=left=array[i]; else submax=submax+array[i]; if(dp[i-1]>=submax) dp[i]=dp[i-1]; else { dp[i]=submax; start=left; end=array[i]; } } if(dp[n-1]<0) dp[n-1]=0,start=array[0],end=array[n-1]; printf("%d %d %d\n",dp[n-1],start,end); } return 0;}
0 0
- hdu 1231 最大连续子序列 【最大连续子串】
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列和
- hdu 1231 最大连续子序列(DP)
- HDU-1231 最大连续子序列
- HDU 1231 最大连续子序列 (dp)
- HDU 1231 最大连续子序列
- hdu 1231最大连续子序列 【DP】
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列
- HDU 1231 最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231最大连续子序列
- HDU-1231-最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列 (dp)
- 最小费用流
- 智猪博弈论
- Open Judge 1664 Placing apples
- Myclipse项目更换svn路径
- java web中url理解
- HDU 1231最大连续子序列
- 2016 Multi-University Training Contest 1 1011 tetrahedron
- iOS代码加密常用加密方式
- HDOJ-----1872结构体稳定排序
- yeoman-bower-grunt之间的关系
- 【设计模式】Command模式
- TILT:Transform Invariant Low-Rank Textures
- 提高代码质量-工具篇
- 持久化技术