Форум программистов, компьютерный форум CyberForum.ru

На сколько кусков распадется часть листа, если из него вырезать некоторые клетки? Есть алгоритм. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ расположить элементы строк в порядке убывания. Вставить в каждую строку заданное число http://www.cyberforum.ru/cpp-beginners/thread1028218.html
В массиве А(N,M) расположить элементы строк в порядке убывания. Вставить в каждую строку заданное число р, не нарушая этот
C++ Строки матрицы, с большим количеством положительных элементов расположить выше остальных В массиве А(N,M) расположить строки так, чтобы сначала шли строки, у которых положительных элементов больше, чем отрицательных, затем с одинаковым числом положительных и отрицательных элементов и последними, чтобы шли строки, имеющие положительных элементов меньше, чем отрицательных.:wall: http://www.cyberforum.ru/cpp-beginners/thread1028215.html
Написать функцию, которая вычисляет среднее арифметическое элементов непустого списка C++
вот сам списаок program prog; type pItem = ^Item; Item = record data: integer; next: pItem; end;
Программирование вероятности! C++
Привет! Помогите решить проблему: Пусть есть наборы: категория-мат.ожидание(не вероятность). Например: ручка - (0,18) карандаш - (0,11) циркуль - (0,11) мышка - (0,17) телефон - (-0,66)
C++ Удалить в словах буквы е http://www.cyberforum.ru/cpp-beginners/thread1028168.html
Удалить в словах первое вхождение буквы "е", если такое имеется.
C++ Как описать пустой строковый массив Скажите пожалуйста, как описать пустой строковый массив, если пока неизвестно сколько букв будет в слове, которое запишется в данный массив? подробнее

Показать сообщение отдельно
Daymon28
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 11

На сколько кусков распадется часть листа, если из него вырезать некоторые клетки? Есть алгоритм. - C++

04.12.2013, 15:23. Просмотров 1616. Ответов 7
Метки (Все метки)

Из листа клетчатой бумаги размером М*N клеток удалили некоторые клетки. На сколько кусков распадется оставшаяся часть листа?
Пример. Если из шахматной доски удалить все клетки одного цвета, то оставшаяся часть распадется на 32 куска.

Добавлено через 1 минуту
К – количество удалённых клеток, (х1; у1), …, (хk; yk) – координаты удалённых клеток.
Для решения данной задачи рассмотрим двумерный массив M x N, где удалённые клетки имеют значение -1, а неудалённые – 0.
В нашем алгоритме мы будем находить первую клетку со значением 0, помечаем её определённым образом, а потом находим и помечаем клетки, имеющие общую сторону с найденной клеткой и к тому же со значением 0. Потом находим и помечаем «нулевых» соседей последних найденных клеток и т.д. Процесс заканчивается, когда никаких новых клеток не удаётся найти. Значит, мы получили единый кусок листа.
Далее выбираем новую начальную клетку и опять повторяем процесс нахождения её «соседей», равных 0.
Алгоритм закончится, когда на «листе» не останется клеток со значением 0.
Для решения задачи будем использовать очередь. В очереди будем хранить вновь помеченные клетки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru