![]() |
|
Модераторы: Alx, Fixin |
![]()
|
|
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
Известно, что в книгах для слепых для обозначения различных букв используются различные комбинации выступов, которые читающий различает наощупь. Пусть для обозначения буквы используется прямоугольник шириной M мм и высотой N мм, причем некоторые входящие в него квадратики размера 1×1 содержат выступ.
Поскольку слепой не видит границ прямоугольника, то он не может различить комбинации, получающиеся друг из друга сдвигом. Так, он не может различить комбинации а) и б) на рисунке 1. (В то же время комбинации а) и в) являются различимыми, поскольку не могут быть получены друг из друга сдвигом) Рисунок 1 Из-за этого при разработке алфавита для слепых появилась проблема: сколько различных букв можно представить с помощью выступов, если запрещается сопоставлять различным буквам комбинации, получающиеся друг из друга сдвигом. Прямоугольник совсем без выступов также нельзя использовать в качестве буквы (поскольку при написании слова между некоторыми буквами может появиться такой прямоугольник, например между а) и г) на рисунке 1). Требуется подсчитать количество различных букв, которые можно представить таким способом, если прямоугольник имеет размер N×M. В качестве примера, все буквы размера 2×2 приведены на рисунке 2. (Среди комбинаций, отвечающих одной букве, приведена только одна) Рисунок 2 Формат входных данных Входной файл Input.txt содержит числа M и N, разделенные пробелом. Поскольку человек одновременно не может воспринимать слишком много информации, M×N <= 30. Формат выходных данных Выведите в выходной файл Output.txt единственное число - количество различных букв, которые слепой сможет различить при заданном размере прямоугольника. Примеры input.txt output.txt 2 2 10 3 3 400 картинки в файле. Добавлено @ 18:11 Тут наверно мат анализ надо приложить. Кол-во расстановок как-то обыграть. Присоединённый файл ( Кол-во скачиваний: 11 )
image001.rar |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
можно попробовать пронормировать фигуры: сдвинуть влево и вверх, пока не упрутся в границу прямоугольника...
-------------------- qqq |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
Т. е. просто перебрать все варианты? |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
Ну что? Никаких соображений? Перебором всегда во время не укладывается.
|
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
для квадратных решеток (N=M), похоже, получается closed-form выражение (но числа огромные), для прямоугольных пока не видно (за исключением Nx1
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 2 Всего: 454 |
Вот теперь работает...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 2 Всего: 454 |
Одно плохо - на больших M и N получается нечто слишком многобитное - впрочем никто не мешает модифицировать под работу в строковой форме...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
Akina
приведи, pls , результаты для M=N=2..5 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 2 Всего: 454 |
2 2: 10
2 3: 44 2 4: 184 2 5: 752 3 3: 400 3 4: 3392 3 5: 27904 4 4: 57856 4 5: 954368 5 5: 31522816 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
Akina
Спасибо. |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
Ух.... Спасибо. Сейчас посмотрю. Потом еще приду ;)
Добавлено @ 18:46 Супер. А как это придумано? Расскажи мысли, теорию и т. д. А? Мне не решение в основном интересует, а логика. К очень важной олимпиаде готовлюсь... |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
And тут побитовый? А что проверяем?
|
|||
|
||||
| Fixin |
|
||||||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
|
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 2 Всего: 454 |
Если символ допускает сдвиг вправо или вниз - отбросить.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
Угу. А это?
|
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
без циклов:
2^(mn-1)+(2^(n-1)-1)*(2^(m-1)-1)*2^((m-1)*(n-1)) на Паскале (для небольших N,M):
|
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: нет Всего: 18 |
Да мне НЕ решение важно!!!!!!!!!!!!!!!
Мне надо знать как это придумать!!!!!! Извиняюсь, если раньше этого не говорил. |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
Более простая и понятная форма:
2^(mn) - 2^(m(n-1)) - 2^(n(m-1)) +2^((m-1)*(n-1)) Количество всех (в т.ч. недопустимых) размещений в NxM прямоугольнике минус (те, в которых первая строка пуста + те, в которых первый столбец пуст -то, что учитывается дважды) |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 2 Всего: 454 |
Это построение маски сдвига вправо. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |