1 solutions
-
0
C++ :
#include <iostream> #include<cstdio> #include<cstdlib> using namespace std; #define M 101 #define INF 1000000000 int n,f[M][M],sum[M][M],stone[M]; int main() { int i,j,k,t; cin>>n; for(i=1;i<=n;i++) scanf("%d",&stone[i]); for(i=1;i<=n;i++) { f[i][i]=0; sum[i][i]=stone[i]; for(j=i+1;j<=n;j++) sum[i][j]=sum[i][j-1]+stone[j]; } for(int len=2;len<=n;len++) { for(i=1;i<=n-len+1;i++) { j=i+len-1; f[i][j]=INF; for(k=i;k<=j-1;k++) { if(f[i][j]>f[i][k]+f[k+1][j]+sum[i][j]) f[i][j]=f[i][k]+f[k+1][j]+sum[i][j]; } } } printf("%d\n",f[1][n]); return 0; }
- 1
Information
- ID
- 9999
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By