51nod最大子段和问题
来源:互联网 发布:java调用外部程序 编辑:程序博客网 时间:2024/05/16 14:13
N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。
例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。
c++:
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<string> #include<cctype> #include<algorithm> #include<vector> #include<cstdio>using namespace std;int main(int argc, char const *argv[]){ int n; scanf("%d",&n); long long ans=0; long long now=0; int a; for (int i = 0; i < n; ++i) { scanf("%d",&a); now=now+a; if (now<0) { now=0; } ans=max(ans,now); } printf("%Id\n",ans ); return 0;}
注意很大的数输出时用lld或者I64d(Id,大写的i),实在不行用cont,但是要避免与scanf混用,导致迷的错误。读入一个数进行一次操作,读入的数不必储存,若相加大于0,则作为now,若小于0,则前面的部分全部舍弃,now从0开始重新开始计算。即之前能取到的最大和是正的我就要,不是正的就舍弃前面的所有值,然后从现在的这个位置开始重新取值。
0 0
- 51nod最大子段和问题
- 51nod-最大子段和问题
- 51NOD-最大子段和问题
- 最大子段和问题(51NOD 1049)
- 51nod 1050 循环数组最大子段和(最大连续子段问题)
- 51nod 1049 最大子段和
- 51Nod 1049 最大子段和
- 51nod:1049 最大子段和
- 51Nod--1049最大子段和
- 51nod 最大子段和
- 51nod 1049 最大子段和
- 51nod 1049 最大子段和
- 51nod 1049 最大子段和
- 51Nod 1049 最大子段和
- 【51nod】1049 最大子段和
- 51NOD 1049 最大子段和
- 51Nod 1049 最大子段和
- 51nod 1049 最大子段和
- 使用springmvc后事物不起作用的原因
- #import、#include、@class、#import<> 、#import""的区别
- android 中的事件分发和事件拦截
- 增量式垃圾回收
- 文章标题
- 51nod最大子段和问题
- 怎么在阿里云服务器部署多个tomcat
- mysql实现rownum
- Ant之build.xml详解
- 进程和线程区别
- Unity3D 2D游戏开发 官方教程。(一)
- Apache Indexes FollowSymLinks详解
- C语言变长数组 struct中char data[0]的用法
- 常用算法(2)--选择排序&堆排序