Solução para o problema de dividir uma matriz para obter a soma máxima

matriz separada para obter a soma máxima

dp[i]dp[i]d p ​​[ i ] representa a soma máxima dos primeiros i números, k tipos de transições.

dp [ i ] = max { dp [ i − 1 ] + 1 ∗ max { arr [ i ] } dp [ i − 2 ] + 2 ∗ max { arr [ i ] , arr [ i − 1 ] } . . . k ∗ dp [ i − k ] + max { arr [ i ] , arr [ i − 1 ] , . . . arr [ i − k + 1 ] } } \begin{equação} \begin{alinhado} dp[i] = max\{ \\ & dp[i - 1] + 1 * max \{ arr[i]\}\ \ &dp[i - 2] + 2 * max \{arr[i], arr[i - 1]\} \\& ... \\ &k * dp[i - k] + max \{arr[i] , arr[i - 1], ... arr[i - k + 1] \} \\ \} \end{alinhado} \end{equação}d p ​​[ eu ]=ma x { }d p ​​[ eu1 ]+1ma x { a rr [ i ]}d p ​​[ eu2 ]+2ma x { a rr [ i ] ,um rr [ eu1 ]}...kd p ​​[ euk ]+ma x { a rr [ i ] ,um rr [ eu1 ] ,... a rr [ euk+1 ] }
dp [ i ] = max ( dp [ i − j ] + j ∗ max ( arr [ i ] . . . arr [ i − j + 1 ] ) ) = max { dp [ i − j ] + j ∗ max { arr [ t ] } } j ∈ [ 1 , min ( k , i ) ] , t ∈ [ i − j + 1 , i ] \begin{equation} \begin{aligned} dp[i] &= max(dp[i - j] + j * max(arr[i]... arr[i - j + 1])) \\ & =max\{dp[i - j] + j * max\{arr[t]\} \} \\ & j \in[1, min(k, i)],t\in[ij + 1, i] \end{alinhado} \end{equação}d p ​​[ eu ]=máx ( d p [ i _j ]+jx ( a rr [ i ] ... a rr [ ij+1 ]))=ma x { d p [ ij ]+jma x { a rr [ t ]}}j[ 1 ,min ( k ,eu )] ,t[ euj+1 ,eu ]

Supongo que te gusta

Origin blog.csdn.net/fuzekun/article/details/130281115
Recomendado
Clasificación