P1115 最大子段和

给出一段序列,选出其中连续且非空的一段使得这段和最大。
注:非空
是dp吧;

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[200010],f[200010];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
     scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)
     f[i]=a[i];
    int p=f[1];
    for(int i=2;i<=n;i++)
    {
        if(f[i-1]>0) f[i]+=f[i-1];
        if(f[i]>p)  p=f[i];
    }
    printf("%d",p);
    return 0;
} 
原文地址:https://www.cnblogs.com/dfsac/p/7587836.html