1050 循环数组最大子段和

基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。
例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。
Input
第1行:整数序列的长度N(2 <= N <= 50000)
第2 - N+1行:N个整数 (-10^9 <= S[i] <= 10^9)
Output
输出循环数组的最大子段和。
Input示例
6
-2
11
-4
13
-5
-2
Output示例
20

问题链接:51Nod-1050 循环数组最大段和

问题分析:(略)

程序说明:(略)

题记:(略)

参考链接:51Nod-1049 最大子段和【DP】

AC的C++程序如下:

#include <iostream>using namespace std;int main()
{int n, si;while(cin >> n) {long long sum = 0, maxval, summax, minval, summin;maxval = summax = minval = summin = 0;for(int i=1; i<=n; i++) {cin >> si;// 总和sum += si;// 最大子段和summax += si;if(summax < 0)summax = 0;maxval = max(maxval, summax);// 最小子段和summin -= si;if(summin < 0)summin = 0;minval = max(minval, summin);}cout << max(maxval, sum + minval) << endl;}return 0;
}

51Nod-1050 循环数组最大段和【最大子段和+最小子段和+DP】相关推荐

  1. 51nod 1050 循环数组最大子段和【环形DP/最大子段和/正难则反】

    1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...

  2. 51nod 1050循环数组最大字段和

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 思路解析:一开始想着直接将长度为n的数组延长至2n-1 ...

  3. 51Nod 1050 循环数组最大子段和

    有两种方式: 1.在首尾之间 2.在尾首之间 对于第一种直接来dp就好,第二种需要将其数组全部取负,然后取到其最大值(肯定是负数的最大值)然后dp即可,最后比较这两个答案谁比较大就输出哪个 1 #in ...

  4. 1050 循环数组最大子段和

    1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...

  5. 【51nod - 1050】循环数组最大子段和(dp)

    题干: N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1], ...

  6. 循环数组的最大子段和

    问题描述: N个整数组成循环序列,求这个序列的最大子段和. 例如:-2   11  -4  13  -5  -2    ANSWER: 20 解决: 解决这个问题需要有求解最大子段和的基础. 循环数组 ...

  7. lintcode循环数组之连续子数组求和

    v 题目:连续子数组求和 II 给定一个整数循环数组(头尾相接),请找出一个连续的子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.如果多个答案,请返回其中任意一个. ...

  8. 返回一个循环数组中最大子数组的和

    设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...

  9. 【小f的刷题笔记】(JS)单调栈 - 下一个更大元素 LeetCode496 下一个更大元素的下标 LeetCode739 循环数组中下一个更大元素 LeetCode503

    [单调栈] 单调栈:顾名思义,就是这个栈是单调的,后面也会运用这一点 模版: var nextGreater = function (nums) {let n = nums.lengthlet res ...

最新文章

  1. php 怎么查看原生方法源码_怎么看电脑内存频率?这里有3种方法可以查看,新手分享...
  2. 多线程之间共享数据的实现
  3. 潘达抽奖盒子小程序源码V3.3.4 附安装包+小程序前端
  4. 负margin几种用法的总结
  5. 在28岁这一年,我也成为了一名创业狗
  6. 自动驾驶攻破的难点在哪,何时能到Level 5?
  7. powerful number求积性函数前缀和
  8. java digester_使用digester解析XML配置文件
  9. FFmpeg —— 录制windows系统声音(附源码)
  10. HTML5 之 Meta 标签
  11. 清北学堂-D1-T1-alien
  12. Mono 的执行流程
  13. 人生,原来是个笑话?
  14. 网络爬虫在电商定价策略上的应用
  15. Set 集合以及Set集合的一些常用方法
  16. GIS简介--GIS可以做什么?
  17. 79、Vue的发展及优点和缺点
  18. Agile EC3010 MCAD UserGuide-1
  19. zinnia下user各自的category
  20. 服务器应用安全措施_建议的安全措施来保护您的服务器

热门文章

  1. 【java学习之路】(java SE篇)(讨论与思考)关于继承,封装,多态,接口的简单实现与思考
  2. mysql每一行数据类型_MySQL_MySQL编程中的6个实用技巧,每一行命令都是用分号(;)作为 - phpStudy...
  3. c语言倒序输出单词_洛谷 || 单词覆盖还原(C语言)
  4. java base class,Java; casting base class to derived class
  5. epic打开一直闪_教你用意派Epub360做酷炫的快闪H5!(附快闪H5模板)
  6. python,C语言求阶乘函数
  7. 海思3519A上运行yolov3(二)——Linux和Windows开发环境和运行环境搭建
  8. 在VS工程中添加lib库的三种方法
  9. open cv+C++错误及经验总结(二)
  10. Tableau可视化学习笔记:day07-08