Sim, é possível resolver esse problema usando programação dinâmica. A ideia é manter uma matriz de custos mínimos, onde cada célula [i][j] representa o custo mínimo de pintar as casas de 0 até i, tendo a casa i pintada com a cor j.

A cada iteração, a matriz é atualizada levando em conta os custos das cores das casas anteriores e o custo de pintar a casa atual com uma determinada cor. O menor custo possível para pintar todas as casas é o menor valor da última linha da matriz.

Em termos de desempenho e complexidade, a solução com programação dinâmica pode ser mais eficiente do que a solução apresentada anteriormente, principalmente para um grande número de casas. A solução anterior tem complexidade O(3^n), enquanto a solução com programação dinâmica tem complexidade O(n*3), o que é muito melhor para valores grandes de n.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence