洛谷 P1063 能量项链(区间DP)

嗯...

题目链接:https://www.luogu.com.cn/problem/P1063

这道题首先要读懂题目,然后往上套区间dp,要转换成链式。

AC代码:

 1 #include<cstdio>
 2 #include<iostream>
 3 
 4 using namespace std;
 5 
 6 int a[205],f[405][405];
 7 
 8 int main(){
 9     int n;
10     scanf("%d",&n);
11     for(int i=1;i<=n;i++){
12         scanf("%d",&a[i]);
13         a[n+i]=a[i];
14     }
15     for(int i=2;i<=n+1;i++){
16         for(int l=1;l+i-1<=n*2;l++){
17             int r=l+i-1;
18             for(int k=l+1;k<r;k++){
19                 f[l][r]=max(f[l][r],f[l][k]+f[k][r]+a[l]*a[k]*a[r]);
20             }
21         }
22     }
23     int ans=0;
24     for(int i=1;i<=n;i++) ans=max(ans,f[i][i+n]);
25     printf("%d",ans);
26     return 0;
27 }
AC代码
原文地址:https://www.cnblogs.com/New-ljx/p/12189440.html