Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
 Аватар для kitap
5 / 5 / 5
Регистрация: 13.03.2014
Сообщений: 46

Сколько прямоугольников в матрице

13.03.2014, 14:38. Показов 6337. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На квадратном клетчатом листе бумаги(размера МхМ клеток) нарисовано несколько прямоугольников. Каждый прямоугольник состоит из целых клеток, различные прямоугольники не накладываются друг на друга и не соприкасаются (см. пример).
Задан размер массива М. Затем построчно задается сам массив размером МхМ, в котором элемент A(i,j)=1, если клетка (i,j) принадлежит какому-либо прямоугольнику, и A(i,j)=0 в противном случае.
Сосчитать число прямоугольников в заданном массиве.


Пример
содержимое файла:
8
10000000
00011100
10011100
10011100
00000000
00001110
00001110
00000000
Ответ : 4 прямоугольника
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2014, 14:38
Ответы с готовыми решениями:

Подсчитать количество прямоугольников из единиц в матрице
На снимке из космоса были обнаружены прямоугольные объекты. Необходимо подсчитать их количество. Снимок представляет из себя квадратную...

Выяснить сколько в массиве непересекающихся прямоугольников.
Привет всем. Дана задача(см.изображение). Вот я пытаюсь написать программу. #include <stdio.h> #include <stdlib.h> ...

Узнать сколько максимально прямоугольников можно составить из ветвей
После подвижных игр ученики 9-А класса решили поиграть во что-то спокойное. С ветвей, остались после игры в кольцо, они захотели составить...

10
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
13.03.2014, 16:17
kitap, если действовать не особо думая (а я так и действовал), то можно тупо пробежаться по матрице. Если встречается 1, то счетчик прямоугольников увеличивается на 1, а все рядом стоящие единицы переименовываются в 0. Итого у нас останется матрица из 0 и количество найденных "полей" из единичек
2
 Аватар для kitap
5 / 5 / 5
Регистрация: 13.03.2014
Сообщений: 46
14.03.2014, 07:18  [ТС]
я так и хотел сделать но как мне сделать 0-ли рядом стояших единиц
0
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
14.03.2014, 07:43
kitap, минут через 20 сяду к компу и скину вариант решения
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
14.03.2014, 07:54
Цитата Сообщение от TenGen Посмотреть сообщение
kitap, если действовать не особо думая (а я так и действовал), то можно тупо пробежаться по матрице. Если встречается 1, то счетчик прямоугольников увеличивается на 1,
сколько прямоугольников в такой записи ?
0 0 0 0 0
0 0 1 0 0
0 1 1 1 0
0 0 1 0 0
0 0 0 0 0
0
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
14.03.2014, 08:09
ValeryS, вы на самом деле думаете, что им по заданию требуют вот такие головоломки? Я считаю, что там вводятся только прямоугольные области
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2224 / 1426 / 420
Регистрация: 16.05.2013
Сообщений: 3,646
Записей в блоге: 6
14.03.2014, 08:15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
int main ()
{
    const int M = 8;
    int count = 0;
    int A[M][M] = { {0, 0, 0, 1, 1, 0, 0, 0},
                    {1, 1, 0, 1, 1, 0, 0, 0},
                    {1, 1, 0, 1, 1, 0, 0, 0},
                    {0, 0, 0, 0, 0, 0, 0, 1},
                    {0, 1, 1, 0, 1, 1, 0, 0},
                    {0, 1, 1, 0, 1, 1, 0, 0},
                    {0, 0, 0, 0, 0, 0, 0, 1},
                    {1, 1, 0, 1, 1, 0, 0, 0}};
 
    for(int i = 0; i < M; ++i) {
        for(int j = 0; j < M; ++j)
            std::cout << A[i][j] << ' ';
        std::cout << std::endl;
    }
    for(int i = 0; i < M; ++i)
        for(int j = 0; j < M; ++j)
            if(A[i][j] && ((j > 0 && !A[i][j - 1]) || (j == 0)) && ((i > 0 && !A[i - 1][j]) || (i == 0)))
                ++count;
    std::cout << count << std::endl;
    return 0;
}
2
Будущее рядом
 Аватар для TenGen
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
14.03.2014, 08:36
Ilot, здорово сделали, а я на своем варианте запоролся, когда начал делать
0
 Аватар для kitap
5 / 5 / 5
Регистрация: 13.03.2014
Сообщений: 46
21.03.2014, 10:16  [ТС]
вот мое решение указанное верхнее решение очень помогло для решение этой задачи

Добавлено через 12 секунд
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Uses crt;
label 1;
var
   a : array [1..100,1..100] of integer;
   i,j,s,n,st,i1,j1,c,p,t : Integer;
   b : Boolean;
begin
readLn(n);
for i:=1 to n do
    for j:=1 to n do read(a[i,j]);
    
b:=false;
while b<>true do
                begin
                for i:=1 to n do
                    for j:=1 to n do
                        if a[i,j]=1 then begin s:=i; inc(c); st:=j; p:=i;t:=j; goto 1; end;
                1:
                while a[s,st]<>0 do inc(s); dec(s);
                while a[s,st]<>0 do inc(st); dec(st);
                
                for i1:=p to s do
                    for j1:=t to st do a[i1,j1]:=0;
                    
                b:=true;
                for i:=1 to n do
                    for j:=1 to n do
                        if a[i,j]<>0 then b:=false;
                end;
writeln(c);
end.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
21.03.2014, 10:31
Цитата Сообщение от kitap Посмотреть сообщение
вот мое решение
Цитата Сообщение от kitap Посмотреть сообщение
Код Pascal
Форум С++ для начинающих

0
 Аватар для kitap
5 / 5 / 5
Регистрация: 13.03.2014
Сообщений: 46
21.03.2014, 10:37  [ТС]
когда я создавал тему необратил внимание на категорию форума и так получилось что я создал тема по категории с++ БезОбид

Добавлено через 59 секунд
зато задачку решили
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2014, 10:37
Помогаю со студенческими работами здесь

OpenCV: определить сколько на фото кругов и сколько прямоугольников
есть несколько фото и нужно определить сколько на фото кругов и сколько прямоугольников

Поиск прямоугольников в матрице
Помогите решить. На квадратном клетчатом листе бумаги нарисовано несколько прямоугольников. Каждый прямоугольник состоит из целых клеток,...

Сколько всего прямоугольников?
Нужно написать программу, которая сосчитает общее число прямоугольников. (смотрите рисунок) ... решение 1. Создаем матрицу А()...

Сколько прямоугольников можно найти?
Есть файл с задание Мне там, почти, все понятно. Не могу понять, зачем нужен параметр р. Разъясните,плиз

Посчитать, сколько закрашенно прямоугольников на поле
Есть клетчатое прямоугольное поле с размерами m на n, на этом поле по линиям сетки закрашено несколько прямоугольников все одним цветом,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru