思路:
1、区间DP 首先遍历区间长度
2、区间dp的状态计算 状态转移表达式f[i][j]=Math.min(f[i][j],f[i][k]+f[k+1][j]+s[j]-s[i-1];
3、注意使用前缀和的小技巧
import java.util.*;
public class Main{
static int N=310;
static int []s=new int [N];
static int [][]f=new int [N][N];
public static void main(String[]args){
Scanner sc=new Scanner (System.in);
int n=sc.nextInt();
for(int i=1;i<=n;i++){
s[i]=sc.nextInt();
s[i]+=s[i-1];
}
for(int len=2;len<=n;len++){
for(int i=1;i+len-1<=n;i++){
int j=i+len-1;
f[i][j]=(int)1e9;
for(int k=i;k<=j;k++){
f[i][j]=Math.min(f[i][j],f[i][k]+f[k+1][j]+s[j]-s[i-1]);
}
}
}
System.out.println(f[1][n]);
}
}