Dobrý den,potřeboval bych poradit s program pro nalezení minimálního počtu uzlů ve stromě. Program "hrubou" silou mám, ale ještě mi chybí program pomocí dynamického programování. Můžete mi prosím poradit? Program hrubou silou: (Visual Studio 2013)#include "stdafx.h"#include <iostream>#include <algorithm> using namespace std;int opakovani = 0;int image[4][4] = { { 1, 1, 1, 1 }, { 0, 0, 0, 1 }, { 0, 0, 0, 1 }, { 1, 1, 1, 1 },};int deleni(int x1, int x2, int y1, int y2);int main(){ int vysl = deleni(0, 3, 0, 3); cout << "Nejmensi pocet uzlu je: " << vysl << endl; cout << opakovani; cin.get(); cin.get(); return 0;}int deleni(int x1, int x2, int y1, int y2) { bool black = false; bool white = false; for (int i = x1; i <= x2; i++) { for (int j = y1; j <= y2; j++) { if (image[i][j] == 0) { white = true; } if (image[i][j] == 1) { black = true; } } } if (!(black & white)) { opakovani++; return 1; } // TADY BYCH DAL TEST, JESTLI VÝSLEDEK S PARAMETRY int x1, int x2, int y1, int y2 UŽ JE V SEZNAMU, POKUD ANO, TAK HO ROVNOU VRÁTÍM int vysledek = 2 * (x2 - x1 + 1) * (y2 - y1 + 1) - 1; for (int i = y1;… i < y2; i++) { vysledek = min(vysledek, deleni(x1, x2, y1, i) + deleni(x1, x2, i + 1, y2) + 1); } for (int i = x1; i < x2; i++) { vysledek = min(vysledek, deleni(x1, i, y1, y2) + deleni(i + 1, x2, x1, y2) + 1); } // TADY BYCH ULOŽIL DO SEZNAMU REŠENÍ S PARAMETRY int x1, int x2, int y1, int y2 opakovani++; return vysledek;} Ukázat celý příspěvek