![]() |
|
|
![]()
|
|
| alxxx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.3.2007 Репутация: нет Всего: нет |
Задача такая:
Во входном файле имеется список переменных (переменные - только одиночные буквы), например: x y z Далее следует набор ограничений на пременные в форме a<b Например: x<y x<z Задача: вывести все упорядочивания имеющихся переменных так чтобы они удовлетворяли ограничениям, то есть то что меньше стоит ЛЕВЕЕ того что больше Например x y z x z y Или еще такой пример: a b f g a<b b<f результат: a b f g a b g f a g b f g a b f |
|||
|
||||
| alxxx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.3.2007 Репутация: нет Всего: нет |
Собственно, первое, что приходит на ум это тупо перебрать все перестановки и для каждой перестановки проверить ограничения. Но в условии сказано, что переменных может быть максимум 20 штук. Получается 20! перестановок, а это мама не горюй.
Нет ли какого-нибудь более эффективного алгоритма? |
|||
|
||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: нет Всего: 42 |
Не слишком красиво, но до появления лучшей идеи сойдет. Введите понятие номера переменной в перестановке и, если первые k переменных не удовлетворяяют условиям, все множество перестановок, соответствуее им, отбрасывается
-------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |