1 Отредактировано sover92 (2011-05-18 09:48:17)

Тема: Домино

Доброго времени суток форумчане. Есть такая задача.

Есть набор (1,5)(1,6)(5,5)(2,4)(2,4) не может быть размещён в строке.Однако если добавить (2,5), то полученный набор можно можно разложить в следующей строке:(6,1)(1,5)(5,5)(5,2)(2,4)(4,2).

Задача состоит в том , чтобы написать программу, которая для данного набора домино найдёт дополнительный набор, чтобы строка могла быть размещена с обоими объединёнными наборами блоков.
Сумма чисел дополнительного набора должна быть минимальна.
Однако если вместо части (2,5) с суммой 7, добавить две части (1,2) с полной суммой 6 то можно разложить так:
(5,5)(5,1)(1,2)(2,4)(4,2)(2,1)(1,6) <-вот это и надо получить.

Помогите пожалуйста с алгоритмом, я чёт не представляю как её делать.
З.Ы. Буду рад любой помощи в решении задания.

2

Re: Домино

см. Эйлеров путь, его существование

3

Re: Домино

Эйлеров путь проходит через каждое ребро только 1 раз, у нас же здесь рёбра повторяются.

4

Re: Домино

Похоже, мысль инверсно сработала...

Вершины - числа, ребра - доминошки.

5 Отредактировано sover92 (2011-05-19 10:42:08)

Re: Домино

мне же в задаче надо добавлять доминошки, и причём не одну,а по несколько доминошек. Чёт я не понимаю причём тут эйлеров путь.