Deutsch

Как решать подобные задачи?

08.01.24 00:55
Re: Как решать подобные задачи?
 
alex445 Забанен до 27/5/24 14:18 коренной житель
в ответ AlexNek 07.01.24 23:48, Последний раз изменено 08.01.24 01:01 (alex445)

Простые циклы, как я понял. Хотя описание задачи так себе.


Это будет что-то вроде волнового алгоритма. Ведь все вершины графа связаны - гоним волну из одной, пока не достигнем нужной. По пути соблюдаем условия в зависимости от задачи - нельзя идти назад, нельзя проходить вершины или рёбра два раза, и т.п., что там может быть. Все ветки алгоритма, достигшие нужной вершины с соблюдением всех условий, и будут удовлетворять решению. Если условия не соблюдаются на любом этапе алгоритма, ветка останавливается.


Только поле не двухмерное, а любая случайная структура. Лучше тут, наверное. Разве что дерево замкнутое - локально (местные циклы) или полностью. Но замкнутым оно становится лишь когда дошли до вершины, в которой уже были, а так в принципе этому алгоритму должно быть всё равно, по какой структуре ходить - всё в основном определяется в условиях на каждой итерации.


Проще всего, наверное, рекурсией сделать, если граф не большой.

 

Перейти на