#include <bits/stdc++.h>
using namespace std;
int n,a[2100],v[2100][2100];
int dfs(int day,int l,int r)
{
if(v[l][r])
{
return v[l][r];
}
if(l>r)
{
return 0;
}
return v[l][r]=max(dfs(day+1,l+1,r)+a[l]*day,dfs(day+1,l,r-1)+a[r]*day);
return v[l][r];
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
cout<<dfs(1,1,n);
return 0;
}
这份代码是A的
#include <bits/stdc++.h>
using namespace std;
int n,a[2100],v[2100][2100];
int dfs(int day,int l,int r)
{
if(v[l][r])
{
return v[l][r];
}
if(l>r)
{
return 0;
}
return v[l][r]=max(dfs(day+1,l+1,r)+a[l]*day,dfs(day+1,l,r-1)+a[r]*day);
//return v[l][r];
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
cout<<dfs(1,1,n);
return 0;
}
这也是A的