思路:用dp[l][r]表示区间L-R合并项链可得的最大值,因为也是环形合并,所有数组长度*2,枚举左右端点和中间的断点,那么可以得出转移方程dp[l][r]=max(dp[l][r],dp[l][k]+dp[k+1][r]+val[l][r])此时val[l][r]就是合并l,k和k,r所得价值。根据题意可以发现其价值就是w[l]*w[k+1]*w[r+1]为了防止越界右端点枚举到r-1
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
const int inf=0x3f3f3f3f;
typedef long long ll;
int n,m;
ll w[210];
ll dp[210]