上课没认真听但是我培训班下周考试并且踢人如果没过我可能年纪轻轻就_____(此处是三个英文字母)了
有没有大佬教下区间dp的思路
#include<bits/stdc++.h>
using namespace std ;
#define ccf 102
int n,a[ccf],sum[ccf] ;
int f[ccf][ccf] ;
int main () {
scanf("%d",&n) ;
for(int i=1 ;i<=n ;i++) {
scanf("%d",&a[i]) ;
sum[i]=sum[i-1]+a[i] ;
}
memset(f,0x3f,sizeof(f)) ;
for(int i=1 ;i<=n ;i++) f[i][i]=0 ;
for(int len=2 ;len<=n ;len++) {
for(int i=1 ;i<=n ;i++) {
int j=i+len-1 ; if(j>n) continue ;
for(int k=i ;k<j ;k++) {
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+sum[j]-sum[i-1]) ;
}
}
}
printf("%d",f[1][n]) ;
return 0 ;
}
以上是合并石子低配版代码
希望可以救一救Orz