Изменения
→Динамическое программирование по подмножествам
То есть, <tex>dp[i][m]</tex> считается по следующим соотношениям:
<tex>dp[i][m] = 0</tex>, если <tex>i = 0</tex> или и <tex>m = 0</tex>
<tex>dp[i][m] = min_{j: m_j=1, (i, j) \in E} \begin{Bmatrix} d(i, j) + dp[j][m - 2^j] \end{Bmatrix}</tex>, если <tex>i\neq 0</tex> и или <tex> m \neq 0 </tex>
<tex>dp[i][m] = \infty </tex>, если <tex>i \neq 0</tex>, <tex>m\neq0</tex> и множество возможных переходов пусто.