Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Сенсорные панели

(Время: 3 сек. Память: 32 Мб Сложность: 78%)

На заводе выпускаются крупные интерактивные панели для промышленного оборудования. Поверхность такой панели разбита на прямоугольную сетку из миниатюрных сенсорных модулей размером N×M. Перед установкой каждая панель проходит финальную бесконтактную проверку: инженер направляет диагностический лазер от одного контрольного модуля к другому и фиксирует отклик системы. Не все модули панели устроены одинаково. Некоторые модули являются контрольными – их необходимо проверить обязательно. Некоторые закрыты защитным экраном – через них лазер не проходит вообще. Остальные модули служебные: на них не требуется получать отклик, но луч может пройти через них без помех. Из-за особенностей стенда панель закреплена в корпусе так, что переставлять оборудование между отдельными проверками нельзя. Поэтому инженер выбирает некоторый первый контрольный модуль, затем переводит луч на второй, потом на третий и так далее, пока не будут проверены все требуемые модули. Луч всегда идёт по прямому отрезку, соединяющему центры двух выбранных модулей. При этом действуют следующие технические ограничения:

  • каждый контрольный модуль должен быть проверен ровно один раз;
  • лазерный луч не может проходить через модуль с защитным экраном;
  • если на прямом отрезке между двумя выбранными контрольными модулями находится центр другого контрольного модуля, то такой перевод луча допустим только в том случае, если этот промежуточный контрольный модуль уже был проверен ранее;
  • служебные модули можно пересекать лучом, но выбирать их как точки проверки нельзя.

Инженеру нужно заранее оценить, сколько вообще существует допустимых сценариев полной инспекции. Это нужно для программирования стенда: если допустимых сценариев слишком мало, панели такого типа направляются на другую линию контроля с подвижным креплением. Для каждой из T панелей определите количество различных допустимых последовательностей проверки всех контрольных модулей. Две последовательности считаются различными, если на каком-то шаге выбирается разный следующий контрольный модуль.

Входные данные

В первой строке входного файла INPUT.TXT содержится натуральное число T (1 ≤ T ≤ 20). Далее идёт описание T панелей: два натуральных числа N, M (1 ≤ N, M ≤ 10), в N строках по M натуральных чисел ai,j (1 – контрольный модуль, 2 – модуль с защитным экраном, 3 – служебный модуль). Количество контрольных модулей является натуральных числом не более 18.

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу для каждой панели с новой строки.

Пример

INPUT.TXTOUTPUT.TXT
11
4 4
1 2 3 2
3 2 2 1
3 3 1 3
3 1 2 1
17

Пояснение к примеру:

Данную панель представим в следующем виде:

4 4
a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4
d1 d2 d3 d4

Возможные переходы:

 
1)  a1 -> b4 -> d4 -> c3 -> d2
2)  a1 -> d2 -> c3 -> b4 -> d4
3)  a1 -> d2 -> c3 -> d4 -> b4
4)  b4 -> a1 -> d2 -> c3 -> d4
5)  b4 -> d4 -> c3 -> d2 -> a1
6)  c3 -> d2 -> a1 -> b4 -> d4
7)  c3 -> d4 -> b4 -> a1 -> d2
8)  c3 -> d4 -> b4 -> d2 -> a1
9)  d2 -> a1 -> b4 -> c3 -> d4
10) d2 -> a1 -> b4 -> d4 -> c3
11) d2 -> c3 -> d4 -> b4 -> a1
12) d4 -> b4 -> a1 -> d2 -> c3
13) d4 -> b4 -> c3 -> d2 -> a1
14) d4 -> c3 -> b4 -> a1 -> d2
15) d4 -> c3 -> b4 -> d2 -> a1
16) d4 -> c3 -> d2 -> a1 -> b4
17) d4 -> c3 -> d2 -> b4 -> a1

Автор задачи

Владимир Игоревич Лукьянчиков

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 ЕГЭ по информатике
 Авторские задачи
 Тренировочные олимпиады
 Фёдор Меньшиков. Олимпиадные задачи по программированию, 2006
 Сборник задач В.И. Лукьянчикова
 Булева Алгебра
 Геометрия
 Динамическое программирование
 Комбинаторика
 Разбор строк
 Разное
 Разное 2
 Рекурсия, перебор
 Системы счисления
 Сортировка и последовательности
 Теория графов
 Формула
 Целочисленная арифметика
 Целочисленная арифметика 2
 Структуры данных
 Бинарный поиск
 Занимательная математика
 Занимательная математика 2
 Занимательная математика 3
 A. Сенсорные панели

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru