![]() |
|
![]() ![]() ![]() |
|
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: нет Всего: 191 |
Здравствуйте!
![]() Есть произвольное количество пар цифр (цифры изменяются от 1 до 8). Нужно определить - возможно ли составить из этих пар последовательность, по принципу домино (т.е. в паре числа можно переставлять). Если возможно, то какую. Например: (1,4) (4,7) (7,5) (0,0) (0,6) (1,6) Составить можно такую последовательность: (0,0) - (0,6) - (6,1) - (1,4) - (4,7) - (7,5) Но вот не могу сообразить хороший алгоритм, как это определить... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Можно выстроить цепь, если:
1) Цифр, количество которых в наборе нечетно, не более 2 (т.е. 0 или 2). 2) Для любой цифры, для которой в наборе есть "дубль", есть по крайней мере один "не-дубль". -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Ln78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
Akina, набор (1,2), (1,3), (2,3), (5,6) твоим требованиям удовлетворяет?
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Ln78, логично. Нужно вводить требование "нераспадения на подмножества".
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
d06osipov |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 1.11.2006 Репутация: нет Всего: нет |
Не верно, по крайней мере так может быть два цикла. Пример: (1 2)-(2 3)-(3 1) (4 5)-(5 6)-(6 4) сдесь всех цифр чётно и каждой не более двух. Задача: в точности обход графа. Числа -- вершины. Если есть пара (n,m), то между вершинами n и m есть ребро. Если у связного графа степени всех вершин чётны, то существует цикл, весь его обходящий, проходящий по каждому ребру по одному разу (это почти то, что нужно, т. о. первое условие, данное Akinой, необходимо и достаточно вместе со связностью). Если есть возможность выделить память в размере O(n), где n --- количество пар, то задача определения связности решается рекурсивно за O(n). Экономней ---- пока не знаю. |
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: нет Всего: 191 |
||||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: нет Всего: 191 |
Я так понял, нужен алгоритм нахождения пути, в котором задействованы будут все ребра (доминошки). Допустим, у нас такие таблички:
(4 2) - (2 6) - (6 5) - (5 4) - (4 6). В общем случае таблички перемешаны, но как видно, цепь существует. Я составил граф: ![]() Задача решена, додумался! ![]() Это сообщение отредактировал(а) Rrader - 10.7.2008, 14:42 |
|||
|
||||
Alix |
|
|||
![]() L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: нет Всего: 23 |
Вообще граф у тебя интересный: если попадаешь в вершину по одному из ее концов, то выходить можно только из другого. По-идее, обыграть это можно разбив вершины на две и сделав связь между ними. Как-то так:
![]() только тогда надо как-то контролировать, чтобы придя в одну вершину выходили из соседней, а не из любой другой, например, сделав связь между ориентированной... хотя не... Подумать надобно )) Это сообщение отредактировал(а) Alix - 7.7.2008, 16:29 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |