Descripción del problema
Título muy simple, dado N digital, no cambian sus posiciones relativas, en el medio de la multiplicación K y la adición de NK-1 del signo +, (más cualquier paréntesis) el resultado final es tan grande como sea posible. Debido a que la multiplicación y PLUS es un total de la N-1, de modo exactamente entre cada dos números adyacentes tener una señal. Por ejemplo:
N = 5, K = 2,5 números 1,2,3,4,5 respectivamente, pueden ser una adición:
1 * 2 * (3 + 4 + 5) = 24
1 * (2 + 3) * (4 + 5) = 45
(1 + 2 * 3) * (4 + 5) = 45
......
N = 5, K = 2,5 números 1,2,3,4,5 respectivamente, pueden ser una adición:
1 * 2 * (3 + 4 + 5) = 24
1 * (2 + 3) * (4 + 5) = 45
(1 + 2 * 3) * (4 + 5) = 45
......
Formato de entrada
Hay dos líneas de archivo de entrada, un primer comportamiento de dos números enteros separados por un espacio, y N representa K, donde (2 <= N <= 15, 0 <= K <= N-1). La segunda línea de los N números separados por espacios (cada número entre 0 a 9).
Formato de salida
El archivo de salida sólo una línea contiene un entero que representa los resultados máximo requerido
entrada de la muestra
5 2
1 2 3 4 5
1 2 3 4 5
Ejemplo de salida
120
Descripción de la muestra
(1 + 2 + 3) * 4 * 5 = 120
La referencia a https://www.cnblogs.com/cao-lei/p/6690827.html y https://blog.csdn.net/Tesla_meng/article/details/88614520
Para ser completado las preguntas
1 #include <bits / STDC ++ h.>
2 usando espacio de nombres std;
3 largo tiempo dp [ 20 ] [ 20 ];
4 larga larga suma [ 20 ];
5 int main () {
6 int n, k;
7 cin >> n >> k;
8 para ( int i = 1 ; i <= n; i ++ ) {
9 int t;
10 cin >> t;
11 suma [i] = suma [i - 1 ] +T;
12 es DP [I] [ 0 ] = SUM [I];
13 es }
14 para ( int I = 2 ; I <= N-; i ++) { // dígitos crecientes
15 para ( int J = 1. ; J <= I - 1. && J <= K; J ++) { // el número cada vez mayor de multiplicación
16 para ( int P = 2 ; P <= I; P ++) { // posición se mueve gradualmente la multiplicación de nuevo
. 17 DP [i] [j] = max (DP [i] [j], DP [P - . 1 ] [J - . 1 ] * (SUMA [I] - SUM [P - . 1]));
18 }
19 }
20 }
21 cout << dp [n] [k] << endl;
22 de retorno 0 ;
23 }