P1063 能量项链
Posted popo-black-cat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1063 能量项链相关的知识,希望对你有一定的参考价值。
思路很清晰:对于dp[i][j]代表以第i个为起始,第j个为结束的最优组合方式,每一次对于其中的一个k进行操作即可。
还有就是对于环状关系的简便存储方式,只是记得改2*n个点而不是n个。
代码:
#include<cstdio> #include<iostream> using namespace std; #define maxn 200 int a[maxn],dp[maxn][maxn],n; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); a[i+n]=a[i]; } for(int i=2;i<=n+1;i++) { for(int l=1;l+i<=2*n;l++) { int r=l+i; for(int k=l+1;k<r;k++) dp[l][r]=max(dp[l][r],dp[l][k]+dp[k][r]+a[l]*a[k]*a[r]); } } int ans=0; for(int i=1;i<=n;i++) ans=max(ans,dp[i][i+n]); printf("%d",ans); return 0; }
以上是关于P1063 能量项链的主要内容,如果未能解决你的问题,请参考以下文章