У меня есть набор упорядоченных пар (x, y), где x! = Y, но в остальном произвольно.
Как найти самую длинную цепочку, не повторяя упорядоченные пары?
Например пусть
S = {(-1, 1.2), (4, 2), (1.2, 3), (3, 5.2), (4.2, -1), (5.2, 1), (3, 2)}.
Самая длинная цепь состоит из (-1, 1.2), (1.2, 3), (3, 5.2), (5.2, 1).
Есть еще одна цепочка (-1, 1,2), (1,2, 3), (3, 2), но она не самая длинная.
Итерации по всему набору — это одно решение, но оно неэффективно.
Я не собираюсь кодировать. Но это может помочь вам.
Вы должны посмотреть на алгоритмы графа. Думайте, что ваша пара — это узел с входной и выходной сторонами. Затем подумайте обо всех краях, которые вы можете нарисовать. затем упростите график и используйте алгоритм поиска самого длинного пути для графиков. https://en.wikipedia.org/wiki/Longest_path_problem
Других решений пока нет …