ivan01356
26.08.2022 23:28

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’ объединяют участки в один.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
baikolepus
24.06.2021 11:49
   Код программы, выводящей этот текст:
1.#include <windows.h>
2.#include <iostream>
3.using namespace std;
4.int main()
5.{
6.setlocale(LC_ALL, "Russian");
7.cout << "Работа с стеклотекстолитом производится в резиновых перчатках. Какое количество их требуется работнице участка печатных плат в смену, если норма расхода перчаток 0,7шт/м3 стеклотекстолита. В год расход материала 1900кг. Плотность стеклотекстолита 2,2г/м3. Число работниц 10." << endl;
8.windows ("pause");
9.}

Извини, но код программы, решающей эту задачу или решить ее и записать на C++ я не смог. Если надо было код проги, выводящей задачу, то отметь лучшим!
Подсветку синтаксиса сделать не могу.

___ 
Министерство череззвычайных ситуаций по домашнему заданию (МЧСпоДЗ).
Профиль МЧС №1.
0,0(0 оценок)
Ответ:
Вано111111111111
08.02.2021 17:14
1) диаграмма автоматически перестроится, согласно новых данных
2) получится формула =СУММ(E1:E5)
3) СРЗНАЧ()
4)ввести значение 10 в ячейку А1; ввести формулу =А1+5 в ячейку А2; скопировать(растянуть) формулу из ячейки А2 до ячейки А19
5)=A1*LN(B2*C1)
6)=3*EXP(2*A1)
7)Стандартные функции используются только в формулах. Вызов функции состоит в указании в формуле имени функции, после которого в скобках указывается список параметров. Отдельные параметры разделяются точкой с запятой. В качестве параметра можно использовать число, адрес ячейки или произвольное выражение.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота