题意就是给你一个区间,每次进入一个区域 k k k (除区间末尾之外)。举个例子,一开始你进入区域 k k k ,就将 [ 1 , n ] [1,n] [1,n] 分成了 [ 1 , k ] [1,k] [1,k], [ k + 1 , n ] [k+1,n] [k+1,n] 两个区间,还会获得(合并后所在区间左右端区域里金钥匙价值之和) ∗ * ∗(之前分离的时候所在区域的金钥匙价值),在这里就是 (1号价值+n号价值) ∗ * ∗ (k号价值)。然后在各自区间内再选任意一个区域发生分离,直到每个所在的区间只剩下了一个区域。
首先这道题有两个问,最大价值和方案。
设 a [ i ] a[i] a[i] 表示 i i i 号价值
第一问
是很裸的区间DP,题目也告诉了你DP的决策,跟石子合并的决策一样,但毕竟不能给你一道原题,所以转移方程很明显不一样。
方法就是枚举区间长度(阶段),再枚举左端点 l l l,从而根据长度确定右端点 r r r。在 [ l , r ) [l,r) [l,r) 的范围中枚举 k k k,即在 k k k 区域发生分离,所得价值根据题意可知 = ( a [ l ] + a [ r ] ) ∗ a [ k ] =(a[l] + a[r]) * a[k] =