动态规划状态方程:
dp[i][j]=d[i][k]+dp[k+1][j]+(sum[k]-sum[i-1])+(sum[j]-sum[k])
边界:0 <=i,j<=n,i<=k<j
if(i==j) dp[i][j]=0;
sum[i]=前i个数的和。
#include#include using namespace std;int dp[205][205],a[205],sum[205];int f(int i,int j){ int k,ans; if(dp[i][j]>=0) return dp[i][j]; if(i==j) return dp[i][j]=0; for(k=i;k >n) { for(i=1;i<=n;i++) {cin>>a[i];sum[i]=a[i]+sum[i-1];} memset(dp,-1,sizeof(dp)); cout< <