题目大意:给出一系列的数字。要求你输出这些数字的最大连续和,并输出构成这个最大连续和的第一个数和最后一个数

解题思路:用一个变量维护最大连续和

假设当前这个变量小于0的话,就表示这个变量仅仅会拉低连续和的值了。所以将其变为0

假设当前这个变量大于0。不管它多小,最大连续和加上它都仅仅会增大而不会减小,所以不用改变这个变量

假设当前变量是0的话,就要依据题目来更新了

#include<cstdio>
#include<cstring>
const int N = 10010; int num[N];
int n, ans_l, ans_r, ans_Max;
void solve() {
int Max = num[0], Sum = num[0];
int l, r;
l = r = ans_l = ans_r = 0;
ans_Max = Max;
for(int i = 1; i < n; i++) {
if(Sum < 0) {
Sum = 0;
l = r = i;
}
Sum += num[i];
r = i;
if(Sum > Max) {
ans_r = r;
ans_l = l;
Max = Sum;
ans_Max = Max;
}
}
} int main() {
while(scanf("%d", &n) != EOF && n) {
for(int i = 0; i < n; i++)
scanf("%d", &num[i]);
solve();
if(ans_Max >= 0)
printf("%d %d %d\n", ans_Max, num[ans_l], num[ans_r]);
else
printf("0 %d %d\n", num[0], num[n - 1]);
}
return 0;
}

题目1011:最大连续子序列 O(n)的更多相关文章

  1. [九度OJ]1011.最大连续子序列

    原题链接:http://ac.jobdu.com/problem.php?pid=1011 题目描述:     给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ N ...

  2. 九度OJ 1011:最大连续子序列 (DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5615 解决:2668 题目描述:     给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, N ...

  3. lintcode 最长上升连续子序列 II(二维最长上升连续序列)

    题目链接:http://www.lintcode.com/zh-cn/problem/longest-increasing-continuous-subsequence-ii/ 最长上升连续子序列 I ...

  4. 最大连续子序列乘积(DP)

    题目来源:小米手机2013年校园招聘笔试题 题目描述: 给定一个浮点数序列(可能有正数.0和负数),求出一个最大的连续子序列乘积. 输入: 输入可能包含多个测试样例.每个测试样例的第一行仅包含正整数 ...

  5. HDU 1231 最大连续子序列(水题)

    题目链接: 传送门 最大连续子序列 Time Limit: 1000MS     Memory Limit: 32768 K Description 给定K个整数的序列{ N1, N2, ..., N ...

  6. UVa 108 - Maximum Sum(最大连续子序列)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  7. [HDOJ1231]最大连续子序列

    混了好几个地方的博客,还是觉得博客园比较靠谱,于是决定在这里安家落户了.本人本科生一个,希望各位巨巨多多指教~ Hello World! 单独一个象征性的问候实在是太low了,还是决定来点实质性的.. ...

  8. HDU 1231 最大连续子序列 --- 入门DP

    HDU 1231 题目大意以及解题思路见: HDU 1003题解,此题和HDU 1003只是记录的信息不同,处理完全相同. /* HDU 1231 最大连续子序列 --- 入门DP */ #inclu ...

  9. lintcode :最长上升连续子序列

    题目: 最长上升连续子序列 给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列.(最长上升连续子序列可以定义为从右到左或从左到右的序列.) 样例 ...

  10. hdu 1024(最大和连续子序列增强版)

    题意:最大和连续子序列的增强版,要求从一序列中取出若干段,这些段之间不能交叉,使得和最大并输出. 分析:用dp[i][j]表示前j个数取出i段得到的最大值,那么状态转移方程为dp[i][j]=max( ...

随机推荐

  1. redis基础一_常用指令

    # Redis configuration file example. # # Note that in order to read the configuration file, Redis mus ...

  2. nginx可用来干什么?

    1.静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML.图片)通过HTTP协议展现给客户端. 配置: server { listen80; # 端口号 lo ...

  3. hibernate 入门配置

    转自: https://segmentfault.com/a/1190000013568216

  4. B6. Concurrent 内存模型与线程交互

    [概述]

  5. HTML中pre标签的用法

    我们经常会在要保持文本格式的时候使用pre标签,比如当我们要展示源代码的时候,只要放一个pre标签,然后把源代码直接复制,粘贴,然后在页面上就可以保持好格式.不会像放在其它标签里那样,把换行和空格都自 ...

  6. 前端开发中的 meta 整理

    meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言, ...

  7. Oracle数据库日常SQL的使用

    DDL 语句(数据定义语言Create.Alter. Drop.Truncate) 1.建表:create table 表名(): 2.复制表结构及其数据:create table 新表名 as se ...

  8. <Spring Cloud>入门六 Zuul

    1.Zuul 2.操作 2.1 pom <?xml version="1.0" encoding="UTF-8"?> <project xml ...

  9. validate 常用的输入框校验

    记录一下angular可以直接用的输入框校验器,外加一个国内手机号码的校验 <!DOCTYPE html> <html> <head> <meta chars ...

  10. 几个非常实用的JQuery代码片段

    jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用). ...