HHUOJ 1852 窃贼
作者:互联网
HHUOJ 1852 窃贼
题目描述
某人在ACM俱乐部里偷重要资料。
对他来说,每份资料都有一个价值。由于有些资料对他来说相当于废纸,如果他还得千辛万苦把这些东西搬走的话,他就会认为这些资料的价值是个负数。
现在时间紧逼,他只能拿走其中连续的一叠(至少一份)!他能拿走价值多大的资料呢?
输入
输入有多组数据。
每组数据两行。
第一行1个正整数(不大于5000),代表资料的总数。
第二行n个整数(绝对值不大于10000),代表每份资料的价值。
输出
对应每组数据,输出能拿走的资料的最大总价值。
样例输入
5
-1 4 -1 5 -3
3
-1 -5 -6
2
0 -1
样例输出
8
-1
0
套一个最大连续子序列模板即可:
#include <bits/stdc++.h>
#define maxn 10005
using namespace std;
typedef long long ll;
int main()
{
int n;
int a[maxn],dp[maxn];
while(~scanf("%d",&n)){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int ans=-1e8;
memset(dp,0,sizeof(dp));
for(int i=0;i<n;i++){
dp[i]=max(a[i],dp[i-1]+a[i]);
ans=max(ans,dp[i]);
}
printf("%d\n",ans);
}
return 0;
}
标签:int,1852,资料,long,HHUOJ,maxn,窃贼,拿走 来源: https://blog.csdn.net/qq_43765333/article/details/101462586