4 条题解
-
1
代码直上
#include<bits/stdc++.h> using namespace std; int n,m; const int N=305; const int INF=0x3f3f3f3f; int dp[N][N]; int a[N]; int sum[N]; int main(){ cin>>n; memset(dp,INF,sizeof(dp)); for(int i=1;i<=n;i++){ cin>>a[i]; sum[i]=sum[i-1]+a[i]; dp[i][i]=0; } //区间dp模板 for(int len=2;len<=n;len++){ for(int i=1;i<=n-len+1;i++){ int j=i+len-1; for(int k=i;k<=j-1;k++){ dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); } } } cout<<dp[1][n]<<endl; return 0; }
信息
- ID
- 193
- 时间
- 5000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 291
- 已通过
- 114
- 上传者