|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.01.2007, 14:28 | #1 |
Новичок
Джуниор
Регистрация: 20.01.2007
Сообщений: 2
|
Задача про переключатели
Подскажите, пожалуйста, алгоритм решения:
Есть N лампочек и M переключателей, каждый из которых какие-то лампочки переключает, а какие-то нет. Сначала часть лампочек включена. Договоримся горящие лампочки обозначать 1, а выключенные - 0. Для переключателей будем писать 1, если переключатель меняет состояние данной лампочки, и 0, если не меняет. Тогда любой переключатель можно представить строкой из N нолей и единиц. Начальное и конечное состояние лампочек также закодируем строкой из 0 и 1. «Применение» переключателя к лампочкам приводит к тому, что включенные лампочки становятся выключенными, а выключенные - включенными (естественно, это справедливо только для лампочек, к которым есть доступ от этого переключателя). Напишите программу, которая определяет, какие переключатели нужно применить, чтобы лампочки перешли в конечное состояние. Входные данные: Вводятся числа N и M (1=50, 1=50). Вводится строка, характеризующая начальное состояние лампочек. Вводится строка, характеризующая конечное состояние лампочек. Вводится M строк, характеризующих переключатели. Выходные данные: Номера переключателей, которые нужно применить, причем каждый переключатель можно применить не более 1 раза, либо сообщение "Нет решения". Пример: Входные данные: 5 3 10010 11000 11100 10001 10110 Выходные данные: 1 3 Последний раз редактировалось Night; 20.01.2007 в 14:32. |
21.01.2007, 14:14 | #2 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
В принципе, задача не так уж и сложна, я вот только не понял про входящие данные: N и M - можно поточнее?
Познавая других, мы познаем себя.
С'est la vie... |
21.01.2007, 14:30 | #3 | ||
Андрей
Форумчанин
Регистрация: 21.11.2006
Сообщений: 457
|
Цитата:
Цитата:
ICQ: 5311314
[SIGPIC][/SIGPIC] |
||
21.01.2007, 14:58 | #4 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
1)
10010 XOR 11000 = 01010 2) Ищем комбинацию переключателей, для которой Xor (поэлементный) дает состояние 01010 [проблема в том, что сначала комбинируем по 2, ответа нет - по 3, и так до 50 - но это полный перебор] у кого есть другой принцип решения ?
Берегите друг друга!
|
21.01.2007, 15:28 | #5 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
Прошу прощения...
Скорее всего в данной ситуации это - единственный выход.
Познавая других, мы познаем себя.
С'est la vie... |
21.01.2007, 18:15 | #6 |
Новичок
Джуниор
Регистрация: 20.01.2007
Сообщений: 2
|
У меня такая идея была, но здесь нам придется перебирать очень много вариантов. Наверняка существует более совершенный способ, ведь для того подобные задачи и предназначены
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача по ТП. | GE076 | Помощь студентам | 11 | 07.12.2007 19:29 |
триггерные кнопки и кнопки переключатели в DELPHI | MARGO | Помощь студентам | 3 | 12.11.2007 17:35 |
Переключатели в CheckListBox | ivp88 | Компоненты Delphi | 2 | 06.05.2007 09:12 |