В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
вікуся40
вікуся40
07.04.2022 07:56 •  Информатика

3. Радиолюбитель Ограничение времени 1 секунда
Ограничение памяти 244Mb
Ввод grass.in
Вывод grass.out
Джон решил заняться радиолюбительством, прочитал в сети Интернет о технологии ЛУТ (лазерно-утюжная технология) и решил попробовать. Суть технологии упрощённо состоит в следующем: сначала на лазерном принтере печатают маску (схему проводников), которую накладывают на заготовку платы, покрытую медью, и травят кислотным раствором. В результате, медь растворяется там, где нет маски (т.е. чернил).

Однако, принтер у Джона очень старый, в результате чего некоторые дорожки перетравились и оказались разорванными. Он решил их дорисовать дорогим контактным клеем "Контактол". Естественно, он хочет потратить как можно меньше этого клея.

Джон раньше занимался математикой, поэтому быстро формализовал и упростил задачу. Во-первых, каждый раз достаточно рассматривать только два целых участка повреждённого проводника. Во-вторых, если для соединения каждой пары таких участков потратить минимум клея, то минимум клея уйдёт и на весь проводник.

Осталось дело за малым - научиться оптимально соединять два участка проводника. Участок платы представлен массивом символов N*M, например, так:

Здесь каждый символ 'X' обозначает сохранившийся участок проводника, на котором медь осталась. Два символа 'X' принадлежат одному и тому же участку, если они вертикально или горизонтально соседние (диагонально соседние таковыми не считаются). Гарантируется, что в выбранном участке имеется только два участка проводника.

Джон хочет использовать как можно меньше клея, чтобы объединить два участка проводника в один. В примере выше, он может сделать это, закрасив только три дополнительных клетки (они помечены символами ‘*’ на рисунке ниже).

Джону определить минимальное количество клеток, которые нужно закрасить, чтобы объединить два участка в один.

Формат ввода
Строка 1: Два разделенных пробелом целых числа, N и M (1 ≤ N, M ≤ 50).

Строки 2..1+N: Каждая строка содержит строку из M символов 'X' и '.', указывающих состояние проводника.

Формат вывода
В единственной строке требуется вывести минимальное количество новых символов 'X', которые необходимо добавить.

Пример
Ввод Вывод
6 16

..XXX...
...XX...
.XXX..
...
XXX
3
Примечания
На рис. участки проводника показаны цифрами 1 и 2:

Три дополнительных символа ‘X’ объединяют участки в один.

Показать ответ
Ответ:
pirishok
pirishok
08.09.2020 13:02
Казалось бы, ответ на вопрос какой народ придумал арабские цифры гениально прост. Ну кто еще, как ни арабы, могли придумать наши с вами цифры, если они носят название арабские?
Однако не все так просто. Если посмотреть на израильские древние языки, то написание цифр там, как ни странно, совершенно не такое, к какому мы привыкли. Их цифры представляют из себя завитушки и крючёчки, и только их цифра «9″ чуть-чуть смахивает на нашу девятку.
Так кто же тогда придумал арабские цифры? На самом деле, знакомые нам цифры (1, 2, 3, …, 9) придумали вовсе не арабские народы. Это написание пришло к нам из Индии. Именно индийские древние народы так обозначали цифры. Конечно, сегодня данное написание претерпело множество изменений, но именно в древней индийской письменности можно разглядеть похожие «закорючки» . Арабские цифры были придуманы в Древнем Востоке для того, чтобы людям было удобнее записывать сложные математические вычисления. Ведь тогда на территории Древнего Востока существовало большое количество научных и псевдонаучных школ.
Но почему тогда цифры названы арабскими? Оказывается, из Индии в Европу эти цифры принесли именно арабы. Однако напрашивается вопрос – почему же тогда арабы не оставили такое написание и себе?
0,0(0 оценок)
Ответ:
Kattemrrr
Kattemrrr
29.02.2020 10:51

Выражение - это любая комбинация операндов или элементов данных (чисел, констант, переменных, функций и других операндов) и знаков операций. Операнды (operands) в программировании - это объекты, над которыми выполняют определенные действия (операции).  Операнд представляет собой некоторую величину, обрабатываемую в программе.

Операции

К операциям, которые используются для записи выражений  относят: операции присваивания; математические операции; логические операции; операции сравнения (отношений); операции для работы со строками (строковые операции).

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота