Gane la oferta de corte de la cuerda

título Descripción

Usted da una cadena de longitud n, por favor cortar la longitud del segmento de cuerda número entero m (m, n son números enteros, n> 1 y m> 1), la longitud de cada cuerda se conoce como k [0], k [1], ..., k [m]. Se k [0] xk [1] x ... xk [m] máximo posible del producto es ¿cuánto? Por ejemplo, cuando la longitud de la cuerda es 08:00, lo cortamos en longitudes de tres secciones 2,3,3 del producto obtenido en este momento es el máximo 18.

pensamiento

Cuenta con cuatro dinámica programación resolución de problemas:
① la solución óptima de un problema,
la solución óptima al problema general ② depende de la solución sub-óptima respectiva;
entre los problemas ③ hay poca superposición de los más pequeños sub-problema;
④ hacia abajo a partir del análisis del problema, para resolver el problema de la parte inferior hacia arriba;

Específica a esta pregunta, cuando el número <4, la máxima de corte no se corta, cuando el número> 4, no debe ser un punto de consideración de la cuerda se divide en dos, el valor máximo de cada producto derivado de composición de dos dividido todo el producto de la cuerda máxima. ¿Por qué no va a la cuerda se divide en 3 partes, 4 partes, debido a que estas soluciones son de hecho cubiertos por las 2 partes por dentro.

código

class Solution {
public:
    int cutRope(int number) {
        if(number < 1)
            return 0;
        vector<int> res(number+1);
        if(number==2)
            return 1;
        if(number==3)
            return 2;
        
        res[1] = 1;
        res[2] = 2;
        res[3] = 3;
        
        int tmp = 0;
        
        for(int i =4 ; i <=number ; i++)
        {
            for(int j = 1; j <= i/2;j++)
            {
                tmp = max(tmp, res[j]*res[i-j]);
            }
            res[i] = tmp;
        }
        return res[number];
    }
};
Publicado 85 artículos originales · ganado elogios 0 · Vistas 388

Supongo que te gusta

Origin blog.csdn.net/weixin_38312163/article/details/104888963
Recomendado
Clasificación