1 solutions
-
0
破环成链,标准区间动态规划模型。
【代码实现】
#include<bits/stdc++.h> using namespace std; const int N=210; int f[N][N]; //f[i][j]表示表示w[i]到w[r]的标记合并成一颗珠子释放的能量 int w[N]; //获取珠子标记 int main() { int n; cin>>n; for(int i=1;i<=n;i++) //输入并扩展 { cin>>w[i]; w[i+n]=w[i]; } for(int len=3;len<=n+1;len++) //从小到大枚举区间长度(2颗珠子才能合并) { for(int l=1;l+len-1<=2*n;l++)//枚举左端点 { int r=l+len-1; for(int j=l+1;j<r;j++) //枚举中间点 { f[l][r]=max(f[l][r],f[l][j]+f[j][r]+w[l]*w[j]*w[r]); } } } int res=0; for(int i=1;i<=n;i++) //枚举合并成为的珠子后的头和尾 { res=max(res,f[i][i+n]); } cout<<res; return 0; }
- 1
Information
- ID
- 450
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 10
- Tags
- # Submissions
- 1
- Accepted
- 1
- Uploaded By