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

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

24.11.2015, 01:04. Показов 2690. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru