powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / алгоритм - Застройка
25 сообщений из 43, страница 1 из 2
алгоритм - Застройка
    #38188816
denis_stell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер,
Подскажите пожалуйсто с алгоритмом решения здачи:
"
Строительная компания приобрела участок земли прямоугольное поле размером N Ч M сек-
торов. После проведения геологических исследований выяснилось, что на поле есть K непригодных
для строительства секторов. Необходимо построить одно здание прямоугольной формы со сторо-
нами параллельными границам участка. Компания заинтересована в рациональном использовании
участка, поэтому границы здания должны упираться либо в непригодные для строительства секто-
ры, либо в границы участка. Сколько существует вариантов выбора места для строительства здания
на приобретенном участке?
Формат входного файла
В первой строке задаются размеры поля N, M (1 ≤ N, M ≤ 109) и количество непригодных
для строительства секторов K (1 ≤ K ≤ 500). В следующих K строках задаются координаты
непригодных секторов Xi, Yi (1 ≤ Xi ≤ N, 1 ≤ Yi ≤ M). Все числа во входных данных целые.
Формат выходного файла
Число вариантов выбора места для строительства здания.

"
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38188827
denis_stell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
из мыслей:
например определим матрицу, в этой матрице по координатам определим бракованные участки.
проходя по каждой строке,смотрим если ячейка не совпадает с брак.учтаском идем дальше, копим инфу, дошли до конца матрицы переходим на новую строку так считаем, нужно также анализировать стобцы....что-то голова пухнет
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38188842
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_stell,

Олимпиадные задачи решаем?

Вопрос, кстати: "здание" - это прямоугольник некоего проивольного размера AxB (1<=A<=N, 1<=B<=M)?
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38188845
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос два: нужно максимизировать размер "здания" (и посчитать количество размещений такого здания), или нужно посчитать все возможные варианты размещения "зданий" любых размеров?
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189566
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMВопрос два: нужно максимизировать размер "здания" (и посчитать количество размещений такого здания), или нужно посчитать все возможные варианты размещения "зданий" любых размеров?
Постановка хреновая, а спрашивается, думаю, примерно следующее: если, начиная с каждой "клеточки" по очереди, расширять "здание" в каждую сторону до упора, то сколько разных прямоугольников будет получено?
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189682
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так.

0) нет ни одного плохого участка : ответ = 1 (вариант)
1) добавляем первый плохой участок : ответ (в общем случае) = 4 (варианта)
2) добавляем второй плохой участок

на каждом шаге поддерживаем список получившихся зданий

Потом добавляем следующий плохой участок и смотрим как он рубит какие-то здания
из предыдущего списка зданий

и т.д.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189811
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про размеры здания непонятно...
Как минимум, есть (M * N - K) возможностей построить здание размером в один сектор. Потом еще куча вариантов для строительства зданий размером в два сектора. При M и N чуть больше 25 и К = 500 вариантов будет мало, при M и N, близких к 100, и К, близких к 1, ответ будет огромный.
Секторы квадратные?
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189848
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimberПро размеры здания непонятно...
Как минимум, есть (M * N - K) возможностей построить здание размером в один сектор.авторграницы здания должны упираться либо в непригодные для строительства секторы, либо в границы участка.Все границы, очевидно.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189873
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
AbstractionВсе границы, очевидно.То есть надо найти в той части, что осталось после выкидывания непригодных участков, куски, которые прямоугольные (а не в виде блоков из тетриса)?
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189895
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
denis_stellграницы здания должны упираться либо в непригодные для строительства секторы, либо в границы участкаЭто означает "Граница здания в КАДЖОЙ точке должна упираться либо в непригодные для строительства секторы, либо в границы участка" или "Каждая сторона здания ХОТЯ БЫ В ОДНОЙ точке должна упираться либо в непригодные для строительства секторы, либо в границы участка"?
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189930
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну совершенно же четкая и ясная постановка задачи.
Я не понимаю как ее можно не понимать.......
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189940
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
---Rt--------Ну совершенно же четкая и ясная постановка задачи.
Я не понимаю как ее можно не понимать.......
Человек интуитивно понимает, что размеры здания имеют гораздо большее практическое значение, нежели упор в загадочные "непригодные участки", и компания, заинтересованная в рациональном использовании чего бы то ни было, просто не может рассматривать здание 3x5 и здание 30x50 как объекты одного класса (возможные варианты решения одной и той же задачи).
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189941
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под плохим сектором тут имеется в виду типа : в этом месте растет 100-летний дуб и спиливать его нельзя.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189948
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а толщина этих дубов равна 0
Слово сектор тут действительно сбивает с толку, согласен.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189951
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
---Rt--------под плохим сектором тут имеется в виду типа : в этом месте растет 100-летний дуб и спиливать его нельзя.
Но можно построить вокруг него зимний сад или внутренний дворик.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38189957
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer---Rt--------под плохим сектором тут имеется в виду типа : в этом месте растет 100-летний дуб и спиливать его нельзя.
Но можно построить вокруг него зимний сад или внутренний дворик.
или шикарный ночной бар =)
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191284
denis_stell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,
здание - размер произвольной формы
интересует количество размещений таких зданий
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191295
denis_stell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerAndreTMВопрос два: нужно максимизировать размер "здания" (и посчитать количество размещений такого здания), или нужно посчитать все возможные варианты размещения "зданий" любых размеров?
Постановка хреновая, а спрашивается, думаю, примерно следующее: если, начиная с каждой "клеточки" по очереди, расширять "здание" в каждую сторону до упора, то сколько разных прямоугольников будет получено?


по идее, так, но мы идем горизонтально, например с слева направо.
если клетка "в пригодном секторе-ячейки" идем дальше, если нет запоминаем.
нужно и вертикально считать.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191297
denis_stell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
---Rt--------Ну совершенно же четкая и ясная постановка задачи.
Я не понимаю как ее можно не понимать.......

Постановка нормальная, но алгоритм не могу составить.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191564
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_stellПостановка нормальная, но алгоритм не могу составить.
Я вот одного не могу понять: здания должны быть прямоугольниками?
Меня смутили твои слова : "... произвольной формы"
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191574
---Rt--------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_stellно алгоритм не могу составить.
не переживай по этому пункту
У меня есть в запасе штук 20 задач, которые я годами не могу решить
Всё нормально, человек не может вот всё решить
Ты ж наверняка студень, а мне уже скоро 49 лет
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191680
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_stellздание - размер произвольной формы Хорошее выражение... "сфэрический куб"
denis_stellграницы здания должны упираться либо в непригодные для строительства секто-
ры, либо в границы участкаА, понял - действительно, при таком условии нужно именно максимизировать размер "здания"-прямоугольника, по месту расположения.

На самом деле, существует достаточно простое решение "в лоб":
- принимаем границы участка как "непригодные сектора"
- проходим по всем "пригодным" секторам; для входа в суммирование - текущий сектор должен быть верхним левым углом "здания" (для этого сектор должен граничить с "непригодными" слева и сверху)
-- подсчитываем количество возможных "зданий" в данной позиции (правый нижний угол должен граничить с "непригодными" справа и снизу )

А далее думаем и оптимизируем... Хотел я было ДП прикрутить, но затем немного подумал...
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191726
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM- проходим по всем "пригодным" секторам; для входа в суммирование - текущий сектор должен быть верхним левым углом "здания" (для этого сектор должен граничить с "непригодными" слева и сверху)
-- подсчитываем количество возможных "зданий" в данной позиции (правый нижний угол должен граничить с "непригодными" справа и снизу )

А далее думаем и оптимизируем... Хотел я было ДП прикрутить, но затем немного подумал...Пусть у нас участок 5х5, один непригодный сектор ровно в центре. По-Вашему, требуемых строений на участке не будет вообще, а на самом деле их целых 4 штуки.
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191800
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
---Rt--------denis_stellно алгоритм не могу составить.
не переживай по этому пункту
У меня есть в запасе штук 20 задач, которые я годами не могу решить
Всё нормально, человек не может вот всё решить
Ты ж наверняка студень, а мне уже скоро 49 лет
Ну ты и старичелло, браза. Скоро уже пенсию
приносить будут а ты всё на ПТ....
...
Рейтинг: 0 / 0
алгоритм - Застройка
    #38191948
Фотография schwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все поле это один прямоугольник N на M. L - список, который содержит пригодные участки. Вначале он стоит из всего участка.
1) Берем первый непригодный участок. В соответствие с ним разбиваем (NxM) на нужно число частей. И добавляем полученные участки пригодные в L, удалив из него NxM.
2) Берем следующий непригодный участок. Находим какие он затрагивает участки из L и разбиваем их также как на шаге 1.
Дальше снова 2. До тех пор, пока не закончатся непригодные участки.
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / алгоритм - Застройка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]