Форум программистов, компьютерный форум, киберфорум
Наши страницы

Площадь наибольшего из прямоугольников матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ пжл решити пример про массив.или памагите http://www.cyberforum.ru/cpp-beginners/thread42542.html
помогите пожалуйста решить задачу про массив. одномерно массиве, состоящем из n целочисленных элементов, вычислить:1)минимальный по модулю элемент массива 2)сумму модулей элементов массива,...
C++ заполнить массив по кругу Нужно заполнить двумерный массив по кругу против часовой стрелки по строкам (последовательностью натуральных чисел), начиная с последнего элемента http://www.cyberforum.ru/cpp-beginners/thread42539.html
C++. Файлы ввода-вывода, массивы, указатели C++
Люди, учусь на инженера... зачем я пошла учится сюда уже не знаю... Помогите кто чем может, профи просьба сильно не ругаться и не матерится)) На языке Си) Написать программу, которая позволяет:...
Где скачать консолные С++? C++
Где скачать консолные С++?
C++ окошки http://www.cyberforum.ru/cpp-beginners/thread42496.html
Проблема есть небольшая.Я не хнаю как создавать и работать c виндовскими окнами. напишите только с объяснениями.
C++ Возможность передать при помощи определения #define двух численных значений через запятую? //------------------------------------ примерный вид кода ----------------- // определение дефайном типа #define RECEIVE(first, second) (first*4+second*5) #define A 3,4 void main() { ... подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6486 / 2260 / 123
Регистрация: 29.07.2006
Сообщений: 12,536
30.06.2009, 21:34
Ну, допустим, мы будем считать, для начала, по столбцам. Иду по первой строке до первого нолика. Это элемент a[0][1]. Потом по столбику вниз иду до единицы, считая элементы. Отлично. Высота прямоугольника мне уже известна. Она равна трем. Теперь, иду в следующий столбик [2] и от элемента a[0][2] также вниз до первой единицы или до того, как высота будет равна трем (мы же ее нашли на предыдущем шаге). таким, образом мы остановились на элементе a[2][2]. Дальше идем в следующий столбик, но там a[0][3] стоит единица. Значит, с первым прямоугольником у нас закончено.
И так далее для остальных столбцов. Может, есть способ удобнее, я пока не придумал )

Забыл указать. Если у тебя единичка встретится, раньше, чем ты отсчитаешь 3 нуля, например, вторым элементом, то этот прямоугольник тебе нужно будет досчитать уже по самой короткой стороне. По сути тебе нужно хранить в переменных только самую короткую высоту, что ты нашла и то, сколько столбцов ты прошла, и индекс строки, с которой ты считаешь. Плюс надо помнить, что прямоугольник может начинаться не только со строки, с которой ты начинаешь считать, но и с любого места меньше найденной тобою высоты.
Этот алгоритм легко реализовать.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.