/* dp[i][j]=将[1,j]合并为一堆时的最大总能量 dp[i][j]=max( dp[i][j], dp[i][k]+dp[k+1][j]+i.m*k.n*j.n ) dp[i][j]=0 */ #include #include #include #include #include using ll = int64_t; #define pvp(v)do{\ std::cout<<#v<<":\n";\ for(const auto&i:(v)){\ std::cout<>n; std::vector h(2*n+1); std::vector> dp(2*n+1,std::vector(2*n+1)); for(ll i=1;i<=n;++i){ std::cin>>h[i]; h[n+i]=h[i]; } // pvp(v); for(ll len=2;len<=n;++len){ for(ll i=1;i<=2*n-len;++i){ ll j=i+len-1; for(ll k=i;k