坑死了
70分
······(和谐了)
Int dfs(int l,int r,int cur) {
if(dp[l][r]!=
0/*关键点*/
)return dp[l][r];
if(l==r)return dp[l][r]=Matrix[l]*my_2[cur];
return dp[l][r]=max(dfs(l+1,r,cur+1)+Matrix[l]*my_2[cur],dfs(l,r-1,cur+1)+Matrix[r]*my_2[cur]);
}
int main() {
get(n);
······(和谐了)
get(Matrix[j]);
ans+=dfs(1,m,1);
······(和谐了)
}
然鹅
[AC]
······(和谐了)
Int dp(int L,int R,int k)
{
if(f[L][R]!=
-1/*关键点*/
if(R-L>=1) f[L][R]=max(Matrix[L]*p[k]+dp(L+1,R,k+1),dp(L,R-1,k+1)+Matrix[R]*p[k]);
else f[L][R]=Matrix[L]*p[k];
return f[L][R];
}
int main() {
get(n);
······(和谐了)
memset(f,-1,sizeof(f));
ans+=dp(1,m,1);
······(和谐了)
}
哪位dalao总结一下错误原因
(发帖时验证码:drtx)