Remporte l'offre de coupe la corde

Titre description

Vous donner une chaîne de longueur n, s'il vous plaît couper l'entier de la longueur du segment de câble (m, n sont des nombres entiers, n> 1 et m> 1), la longueur de chaque corde est appelée k [0], k [1], ..., k [m]. Est-ce que k [0] XK [1] x ... XK [m] produit maximum est de combien? Par exemple, lorsque la longueur de la corde est 08h00, nous couper en longueurs de trois sections 2,3,3 du produit obtenu à ce moment est le maximum 18.

pensée

Caractéristiques quatre problèmes de programmation dynamique de résolution:
① la solution optimale d'un problème, la
solution optimale au problème global ② dépend de la solution sous-optimale respective,
entre les problèmes ③ il y a peu de chevauchement des plus petits sous-problème,
④ vers le bas de l'analyse du problème, pour résoudre le problème du haut en bas;

Spécifique à cette question, lorsque le nombre <4, la coupe maximale ne soit pas coupé, lorsque le nombre> 4, il doit y avoir un point de considération de la corde est divisée en deux, la valeur maximale de chaque produit issu de deux composition divisé l'ensemble du produit de la corde maximale. Pourquoi ne pas la corde est divisée en 3 parties, 4 pièces, parce que ces solutions sont en fait couvertes par les 2 parties à l'intérieur.

code

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];
    }
};
Publié 85 articles originaux · louanges gagnées 0 · Vues 388

Je suppose que tu aimes

Origine blog.csdn.net/weixin_38312163/article/details/104888963
conseillé
Classement