Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 2

Геометрическая задача по программированию (C++)

24.11.2015, 01:04. Показов 2707. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Дали такое вот задание по программированию, реализовывать нужно на плюсах, но есть некоторое недопонимание того, что вообще должна делать программа. Вот, собственно, сама задача:

"Задача о посадке моркови.
Пусть имеется прямоугольное поле размерами n x m участков.
Каждый из участков либо доступен для посадки моркови, либо нет.
Поскольку обработка участка ведется с помощью трактора, необходимо выбрать прямоугольный участок поля, который будет засеваться морковью в параллельные грядки.
Этот прямоугольник должен иметь максимальную площадь и состоять только из доступных участков.
Площадь, требуемая трактору для перехода с одной грядки на следующую соответствует одному доступному участку в конце каждой грядки.
Нужно выбирать поле таким образом, чтобы необходимая площадь для разворота суммарно была минимальной.
Нужный прямоугольник может иметь стороны, не параллельные сторонам исходного поля.
"

Как я понимаю, у нас есть исходный булевый массив n x m элементов, где места, доступные для посадки- единички, недоступные- нули. Но я не понимаю, как должен реализовываться поиск прямоугольника, стороны которого могут быть не параллельны сторонам исходного массива... Если у вас найдутся идеи, буду очень рад прочесть их. Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2015, 01:04
Ответы с готовыми решениями:

Геометрическая задача
Дан квадрат (длина стороны и координаты левого верхнего угла) и треугольник (координаты вершин). Определить, находится ли треугольник...

Геометрическая задача нахождения координат точки
Дан прямоугольный треугольник заданный координатами своих вершин в структуре Point:struct Point { double x, y, z; }; Дана точка,...

Геометрическая задача - невозможность достич цели
Формат данные: круги Область данных: 2D-поверхность, ограниченная прямоугольником Входные данные: радиус цели и его центр, радиус...

3
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
24.11.2015, 07:54
Цитата Сообщение от Lelay Посмотреть сообщение
как должен реализовываться поиск прямоугольника
Я бы рекурсией сделал.
0
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 2
24.11.2015, 21:23  [ТС]
DUMP, можно немножко поподробней, если не затруднит? Я просто пока что в первичном бульоне программирования плаваю, не так много опыта, и с рекурсивным методом не знаком, увы
0
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
25.11.2015, 15:29
Lelay, здесь я подсчитал кол-во грядок и площадь самой большой грядки
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
 
const int w = 6;
const int h = 6;
int board[h][w] = {
        {0,0,1,0,0,0},
        {0,1,1,1,0,0},
        {1,1,1,1,1,0},
        {0,1,1,1,0,0},
        {0,0,1,0,0,1},
        {0,0,0,0,1,1},
    };
 
void dothis(int y , int x, int* s)
{
    (*s)++;
    board[y][x] = 2; // проверили
    if(x != w-1 && board[y][x+1] == 1)
        dothis(y,x+1,s);
    if(x != 0 && board[y][x-1] == 1)
        dothis(y,x-1,s);
    if(y != h-1 && board[y+1][x] == 1)
        dothis(y+1,x,s);
    if(y != 0 && board[y-1][x] == 1)
        dothis(y-1,x,s);
 
}
 
int main ( )
{   
    int p = 0; // грядок
    int max = 0; //max площадь грядки
 
    for(int y = 0; y < h; y++)
        for(int x = 0; x < w; x++)
        {
            int tmp = 0;
            if(board[y][x] == 1)
            {
                dothis(y,x,&tmp);
                p++;
            }
            if(tmp > max)
                max = tmp;
        }
    std::cout<<"gradok: "<<p<<std::endl;
    std::cout<<"S max: "<<max<<std::endl;
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2015, 15:29
Помогаю со студенческими работами здесь

задача по программированию С++
Помогите пожалуйста написать задачу на C++ по фото . Задача B2

Задача по программированию
Друзья, помогите с задачей по программированию. Дан массив t из 10 элементов, в каждом находится структура x в которой соответственно...

Задача по программированию
Составить программу упорядочения элементов по убыванию во втором столбце матрицы A(N,N).

Задача по программированию. Цикл For
Написать программу, которая будет выводить на консоль значения факториала целых чисел из интервала от n1 до n2. Предвратительно написать...

Задача по олимпиадному программированию
Помогите решить задачу. Я имел идею перебирать все варианты, которое заходит только на 10%. Мост между островами Тысячи и тысячи лет...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru