Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 19
1

Найти и выделить все фрагменты

11.12.2017, 14:40. Показов 669. Ответов 0

Author24 — интернет-сервис помощи студентам
Битное изображение размером N x M задается совокупностью с 1 и 0, размещенных в соответствующих ячейках. Смежными называются клетки, содержащие общую «сторону» или «угол». Фрагментом называется совокупность всех смежных ячеек с единичками на фоне нулей. Подобными называются фрагменты, в которых равное количество 1 и одинаковое их относительное размещение (подобные также фрагменты, которые повернуты друг относительно друга на угол кратный 90 градусов). В заданном таким образом изображении нужно найти и выделить все разные фрагменты. Под выделением понимается замена всех 1 в определенном виде фрагментов на одну из латинских букв [a-z].
Для выделения подобных фрагментов нужно использовать одну из букв латинского алфавита [a-z]. Для подобных фрагментов - одинаковая буква. Буквы используются в алфавитном порядке. Назначение определенной буквы для фрагмента нужно делать в порядке нахождения новых, просматривая изображение слева направо и по строкам вниз (см. Пример).
Изображение размером 6х3.

Найти и выделить все фрагменты


ограничения:
0 ≤ Ширина изображения ≤ 100
0 ≤ Высота изображения ≤ 100
0 ≤ Всего фрагментов ≤ 500
0 ≤ Различных фрагментов ≤ 26 [a-z]
В каждом из фрагментов не более 160 единичек.
Формат входных данных
Первые две строки входного файла содержат числа N и M (соответственно ширина и высота изображения). Далее следуют M строк по N символов в каждой (1 или 0).
формат результата
Выходной файл должен содержать M строк по N символов в каждой, соответствующие исходному изображению.
Примеры
Входные
6
3
011001
000100
110001
Выходные данные
0aa00b
000a00
сс000b
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2017, 14:40
Ответы с готовыми решениями:

написать все возможные,эквивалентные данному фрагменты программы с использованием других операторов цикла
A:=1;b:=2;while(a>1)and(b<=12)do begin B:=b+1-a; A:=a+1; End; Помогите пожалуйста)

Выделить все дробные части чисел в один массив, все целые - в другой массив
в массиве вещественных чисел выделить все дробные части чисел в отдельный массив все дробные в...

В строке заменить все фрагменты x на фрагменты y
В заданной строке z заменить все фрагменты x на фрагменты y. Для решения используйте собственную...

Как найти и выделить желтым цветом все ячейки со словом?
void __fastcall TForm1::FormCreate(TObject *Sender) { S1->Cells= "ИстГосПрава п-592 ...

0
11.12.2017, 14:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2017, 14:40
Помогаю со студенческими работами здесь

Выделить все цифры числа и найти сумму первой и последней цифр
Дано целое число F. Выделить все цифры этого числа и найти сумму первой и последней его цифр.

Начиная с позиции N, заменить в строке S все фрагменты S1 и S2
Дано натуральное число N, строка S и две подстроки S1 и S2. Начиная с позиции N, заменить в строке...

Как вывести все записи в которых встречается данные фрагменты
sSQL1 = 'SELECT * FROM tChapter where ChapterName = ''& name &'' and IdChapter =''& seria &'''...

Из заданного текста удалить все фрагменты, которые находятся в фигурных скобках
С данного текста удалить все фрагменты, которые находятся в фигурных скобках.Спасибо заранее


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru