自然是DP了。。
状态转移方程:
这里我把dp[i] 赋值为 a[i],
所以这和:
无异
。。
CODE:
#include <cmath>
#include <cstdio>
#include <algorithm>
const int MAXN = 50000+10;
typedef long long ll;
using namespace std;
int n;
ll a[MAXN],dp[MAXN],ans;
int main()
{
ans=0;
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%lld",&a[i]);
for(int i=1;i<=n;++i)
dp[i]=a[i];
ans=a[1];
for(int i=2;i<=n;++i)
{
dp[i]=max(dp[i],dp[i-1]+a[i]);
ans=max(ans,dp[i]);
}
printf("%lld\n",ans);
}
/*
6
-2
11
-4
13
-5
-2
*/