E.エネルギーのネックレス
タイトル説明
火星では、火星すべての人は、エネルギーのネックレスの束を着用すること。ネックレスエネルギーのビーズのN個があります。エネルギービーズはヘッドとテールマークラベルされたビーズを持って、これらのマークは、正の整数に対応しています。そして、隣接する二つのビーズのために、マーカーの終了前にビーズは、ビーズの後の最初のマークと同じでなければなりません。エネルギーの放出がチャックによって吸収されてもよいだけこのように、吸引カップ(吸盤臓器火星ヒトエネルギー吸収である)効果、2つのビードは、ビードに重合します。前者ヘッドエネルギーはビーズmを標識した場合、ポストアンブルをr、R標識されたビーズ、テールマークのヘッドのエネルギーをnと、次いで(火星単位)をリリース重合エネルギーの後、ビーズを新たに生成しましたヘッドは、テールマークがnであり、mとなりました。
必要な場合には、隣接する二つのビーズをクランプ吸盤と火星人は、次のビーズのネックレスまで左まで、エネルギーを重合して得られます。もちろん、重合GETの異なる順序の総エネルギーは、あなたがリリースされた最大総エネルギーのうちのネックレスを作るための重合の順序を設計し、異なっています。
例:N =頭部および尾部標識4,4ビーズを標識した(2,3)、(3,5)、(5,10)、(10,2)とします。我々は、重合が解放後に2つのビードをK、2つのビード重合操作、(j⊕k)Jのエネルギーを表す⊕シンボルを使用します。最初の2つのビードによって解放重合エネルギーの後4,1です。
(4⊕1)は10 = 2 3 = 60。
このネックレスは、最適値を発表した重合のための総エネルギーすることができ
((4⊕1)⊕2)⊕3)10 = 2 3 + 10 3 5 + 10 5 = 710 10。
入力形式
入力ファイルenergy.inの最初の行は、正の整数N(4≤N≤100)であるネックレス上のビーズの数を表します。第二のラインは1,000全ての数以上ではない、nは正の整数の空間によって分離されています。ビードの端部をマーキングiがN <スパン<I番目(1≤i≤N)の第1のビード、>のi番目のタグは、ビーズのI + 1ヘッドマークIに等しくなければなりません。N標識ビーズは、標識されている第1のビードのヘッドエンドに等しくなければなりません。ビーズの順序については、あなたが判断できるように表にネックレス、クロス表示されない、任意に最初に指定されたビーズは、その後、時計回り他のビーズに順序を決定します。
出力フォーマット
出力ファイルは一つだけの行をenergy.out、それは正の整数E(E≤2.1* 109)、解放重合のための最適な総エネルギーです。
サンプル
サンプル入力
4
2 3 5 10
サンプル出力
710
1の#include <iostreamの> 2の#include <CStringの> 3の#include <cstdioを> 4の#include <積層> 5 使って 名前空間STDを、 6 INTの N、nuse、DOD、DP [ 201 ] [ 201 ] / * I - J最优解* /、ウェイ[ 201 ] / * 从1至iは* /、マキシ、TOU [ 201 ]、maxmax。 7 INT メイン() 8 { 9 CIN >> N。 10 nuse = 2 * N- 1 。 11 のための(のInt I = 1 ; I <= N; Iは++ ) 12は 、{ 13は CIN >> ; TOU [I] 14 ウェイ[I- 。1 ] = ; TOU [I] 15 } 16 ウェイが[ 0 ] = 0 ; 17 ウェイ[ N-] = TOUの[ 1。]; 18である ため(INT I = N + 1 ; Iは、<= 2 ; * N-Iが++ ) 19 { 20である [I] = TOUは[I-TOU N-]; 21である ウェイ[I]は=ウェイ[I - N-]; 22です } 23 のために(INT LEN = 1 ; lenは<N; LEN ++ ) 24 { 25 のために(int型 I = 1 ; I <= 2 * N-LEN; iは++ ) 26 { 27 のint J = LEN + I。 28 のための(int型、K <J、K = I kは++ ) 29 { 30 DP [I] [J] = MAX(DP [I]、[J]、DP [I] [K] + DP [K + 1 ] [J ] + TOU [I] *ウェイ[K] * ウェイ[J])。 31 } 32 } 33 } 34 以下のために(int型 I = 1 <; iがN ++ =私は) 35 { 36 であれば(DPを[I] [I + N- 1 ]> マキシ) 37 { 38 マキシ= DP [I] [I + N- 1 ]。 39 } 40 } 41 COUT << マキシ。 42 }