最大连续子序列

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 39872    Accepted Submission(s): 18076

Problem Description
给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., 
Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个, 
例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 
为20。 
在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还需要输出该 
子序列的第一个和最后一个元素。
 
Input
测试输入包含若干测试用例,每个测试用例占2行,第1行给出正整数K( < 10000 ),第2行给出K个整数,中间用空格分隔。当K为0时,输入结束,该用例不被处理。
 
Output
对每个测试用例,在1行里输出最大和、最大连续子序列的第一个和最后一个元 
素,中间用空格分隔。如果最大连续子序列不唯一,则输出序号i和j最小的那个(如输入样例的第2、3组)。若所有K个元素都是负数,则定义其最大和为0,输出整个序列的首尾元素。 
 
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

Hint

Hint

Huge input, scanf is recommended.

题意:给出一个整数序列,求出一个和最大连续子序列,输出和,子序列第一个元素,最后一个元素

题解:状态转移方程:dp[i]=max(a[i],dp[i-1]+a[i])

emm 明明是动态规划,总感觉写出了暴力的感觉

 #include<bits/stdc++.h>
using namespace std;
int a[],dp[];
int main()
{
int k;
while(~scanf("%d",&k),k)
{
memset(a,,sizeof(a));
memset(dp,,sizeof(dp));
for(int i=;i<=k;i++)
{
scanf("%d",&a[i]);
}
int maxx=-,s,e=-;
for(int i=;i<=k;i++)
{
dp[i]=max(a[i],dp[i-]+a[i]);
if(maxx<dp[i])
{
maxx=dp[i];
}
}
for(int i=;i<=k;i++)
{
if(dp[i]==maxx&&e==-)
{
e=i;break;
}
}
for(int i=e;i>=;i--)
{
if(dp[i]==a[i])
{
s=i;break;
}
}
if(maxx<)
{
printf("0 %d %d\n",a[],a[k]);
}else
{
printf("%d %d %d\n",maxx,a[s],a[e]);
}
}
return ;
}

最新文章

  1. Python3.5之TuShare
  2. ExpandableListView方法详解
  3. ActiveX控件的Events事件
  4. DevExpress控件XtraGrid的Master-Detail中DetailViewCaption显示问题
  5. 【技术贴】解决 myeclipse打不开报错an error has occurred, see .
  6. hdu 3400 Line belt
  7. 怎样在 Swift 项目中使用 CocoaPods
  8. hdu_4651_Partition(公式)
  9. ASer Python学习笔记
  10. Postgresql合并年月日、月份和日期左侧补零
  11. Vue.js 2.x笔记:状态管理Vuex(7)
  12. 20175312 2018-2019-2 《Java程序设计》第6周学习总结
  13. rsa证书ssh登陆服务器
  14. CoAP、MQTT、RESTful协议区别
  15. Python 爬虫常用的库
  16. CH4101 银河英雄传说
  17. Linux 启动文件、设置环境变量的位置
  18. 20155211 2016-2017-2 《Java程序设计》第八周学习总结
  19. 亮眼的购物季数据,高涨的 Amazon Prime
  20. 【二维树状数组】【CF10D】 LCIS

热门文章

  1. BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡:贪心【最小匹配代价】
  2. c#用链表来存储并读取写好的配置文件
  3. Ajax同时上传表单序列化参数+自定义参数
  4. HDU 2096 小明A+B(%的运用)
  5. STM32 Cortex-M3 NMI异常
  6. AOP切点切面内容
  7. Linux面试笔试题带答案【详解】
  8. Django忘记超级用户密码||账号
  9. 【读书笔记 - Effective Java】02. 遇到多个构造器参数时要考虑用构建器
  10. Spring的绿草丛