50分的暴力dp都不会了,不太秒
求助,debug失败
先嫖50分再说
#include <bits/stdc++.h>
using namespace std;
int n,a,b,c;
int tot;
int arr[1000001];
long long dp[1000001];
long long ans;
long long calc(int sb)
{
return sb*sb*a+sb*b+c;
}
int main()
{
scanf("%d",&n);
scanf("%d %d %d",&a,&b,&c);
for(int i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
arr[i]+=arr[i-1];
}
for(int i=1;i<=n;i++)
{
dp[i]=calc(arr[i]);
for(int j=0;j<i;j++)
{
dp[i]=max(dp[i],dp[j]+calc(arr[i]-arr[j]));
}
}
printf("%lld\n",dp[n]);
return 0;
}