Изменения

Перейти к: навигация, поиск

Задача коммивояжера, ДП по подмножествам

49 байт убрано, 19:50, 15 января 2015
Оптимизация решения
==== Оптимизация решения ====
Тут можно обойтись решением 2, заменив сумму на побитовое ИЛИ. Тогда Пусть теперь <tex>dp[mask][i] будет содержать </tex> содержит булево значение - существует ли в подмножестве подмножества <tex>mask </tex> гамильтонов путь, заканчивающийся в вершине <tex>i</tex>.  Сама динамика будет такая:<br><tex>dp[mask][i] = 1</tex>, если count(<tex>|mask)| = 1 </tex> и bit(<tex>mask[i, mask)] = 1;</tex> <br>, если count(mask) > 1 и bit(i, mask) = 1;
dp[mask][i] = 0 во всех остальных случаях.
Анонимный участник

Навигация