1 条题解
-
0
区间dp
#include<bits/stdc++.h> using namespace std; #define int long long const int N=505; int a[N], f[N][N]; signed main() { int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; a[0]=a[n+1]=1; for(int len=1;len<=n;len++) { for(int i=1;i<=n;i++) { int j=i+len-1; if(j>n)break; for(int k=i;k<=j;k++)//枚举该区间内最后一个出列的人 { f[i][j]=max(f[i][j], f[i][k-1]+a[k]*a[i-1]*a[j+1]+f[k+1][j]); } } } cout<<f[1][n]<<'\n'; return 0; }
- 1
信息
- ID
- 318
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 44
- 已通过
- 9
- 上传者