最大字段和 51nod 1049 水水水水水水水水水水水水
Posted 小小超plus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大字段和 51nod 1049 水水水水水水水水水水水水相关的知识,希望对你有一定的参考价值。
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。
Input
第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)
Output
输出最大子段和。
Input示例
6 -2 11 -4 13 -5 -2
Output示例
20
水题 ,不懂问我,只限女生。
1 #include <iostream> 2 using namespace std; 3 #include<string.h> 4 #include<set> 5 #include<stdio.h> 6 #include<math.h> 7 #include<queue> 8 #include<map> 9 #include<algorithm> 10 #include<cstdio> 11 #include<cmath> 12 #include<cstring> 13 #include <cstdio> 14 #include <cstdlib> 15 #include<stack> 16 #include<vector> 17 int a[51000]; 18 int main() 19 { 20 int n; 21 cin>>n; 22 for(int i=0;i<n;i++) 23 scanf("%d",&a[i]); 24 long long sum=0; 25 long long max1=0; 26 for(int i=0;i<n;i++) 27 { 28 sum+=a[i]; 29 if(sum<0) 30 sum=0; 31 max1=max(sum,max1); 32 } 33 cout<<max1<<endl; 34 return 0; 35 }
以上是关于最大字段和 51nod 1049 水水水水水水水水水水水水的主要内容,如果未能解决你的问题,请参考以下文章