正题
评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1063
题目大意
有n个珠子组成环,每颗珠子的头尾标记连接,将两颗珠子合并会产生headi∗headj∗tailjheadi∗headj∗tailj的能量,产生一颗头标记为头珠子的头标记,尾标记为尾珠子的尾标记。 
 求所以珠子合并最大能量
解题思路
裸的区间dp
code
#include<cstdio>
#include<algorithm>
using namespace std;
int n,h[210],t[210],maxs,f[210][210];
int main()
{    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&h[i]);
        h[i+n]=t[i+n-1]=t[i-1]=h[i];
    }
    t[2*n]=h[1];
    for(int i=2;i<=n;i++)
      for(int l=1;l<=2*n-i+1;l++)
      {
        int r=l+i-1;
        for(int k=l;k<r;k++)
        {
            f[l][r]=max(f[l][r],f[l][k]+f[k+1][r]+h[l]*t[k]*t[r]);
            //动态转移
        }
        if(i==n) maxs=max(maxs,f[l][r]);
      }
    printf("%d",maxs);
}