Изменения

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

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

462 байта добавлено, 03:40, 12 января 2013
Код: дописано нахождение пути
d[0][0] = 0;
ans = ''findCheapest'' (0, 2 ** n - 1)
if ans == inf
exit
Дальше ищем сам путь:
i = 0
mask = 2 ** n - 1
'''while''' mask != 0
'''for''' j = 0 .. n - 1
'''if''' w(i, j) существует '''and''' j-ый бит mask == 1 '''and''' d[i][mask] == d[j][mask - 2 ** j] + w(i, j)
path.'''push'''(j)
i = j
mask = mask - 2 ** j
'''continue'''
Разворачивать его, по понятным причинам, не нужно
== Ссылки ==
308
правок

Навигация