原题:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1386
时间:2014.2.12
类型:dp
源码:
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
long a[100001],b[100001]; // NOTE: remember to use long
int n;
long maxn()
{
long max=b[1];
for(int i=2;i<=n;i++) { if(b[i]>max) { max=b[i]; } }
return max;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(b,0,sizeof(b));
memset(a,0,sizeof(a));
scanf("%d",&n);
for(int i=1;i<=n;i++) { scanf("%ld",&a[i]); } //NOTE: remember to use "%ld"
b[1]=a[1];
for(int k=2;k<=n;k++)
{
if(b[k-1]+a[k]>a[k]) { b[k]=b[k-1]+a[k]; }
else { b[k]=a[k]; }
}
long max=maxn(); //use maxn is the easiest way to know the biggest
printf("%ld\n",max); //NOTE: remember to add "\n"
}
//system("pause");
return 0;
}
最后状态:AC
总结:写在上面了