|
|
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, Подскажите пожалуйсто с алгоритмом решения здачи: " Строительная компания приобрела участок земли прямоугольное поле размером N Ч M сек- торов. После проведения геологических исследований выяснилось, что на поле есть K непригодных для строительства секторов. Необходимо построить одно здание прямоугольной формы со сторо- нами параллельными границам участка. Компания заинтересована в рациональном использовании участка, поэтому границы здания должны упираться либо в непригодные для строительства секто- ры, либо в границы участка. Сколько существует вариантов выбора места для строительства здания на приобретенном участке? Формат входного файла В первой строке задаются размеры поля N, M (1 ≤ N, M ≤ 109) и количество непригодных для строительства секторов K (1 ≤ K ≤ 500). В следующих K строках задаются координаты непригодных секторов Xi, Yi (1 ≤ Xi ≤ N, 1 ≤ Yi ≤ M). Все числа во входных данных целые. Формат выходного файла Число вариантов выбора места для строительства здания. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 22:56 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
из мыслей: например определим матрицу, в этой матрице по координатам определим бракованные участки. проходя по каждой строке,смотрим если ячейка не совпадает с брак.учтаском идем дальше, копим инфу, дошли до конца матрицы переходим на новую строку так считаем, нужно также анализировать стобцы....что-то голова пухнет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 23:09 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
denis_stell, Олимпиадные задачи решаем? Вопрос, кстати: "здание" - это прямоугольник некоего проивольного размера AxB (1<=A<=N, 1<=B<=M)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 23:29 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
Вопрос два: нужно максимизировать размер "здания" (и посчитать количество размещений такого здания), или нужно посчитать все возможные варианты размещения "зданий" любых размеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2013, 23:36 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
AndreTMВопрос два: нужно максимизировать размер "здания" (и посчитать количество размещений такого здания), или нужно посчитать все возможные варианты размещения "зданий" любых размеров? Постановка хреновая, а спрашивается, думаю, примерно следующее: если, начиная с каждой "клеточки" по очереди, расширять "здание" в каждую сторону до упора, то сколько разных прямоугольников будет получено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 13:20 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
Можно так. 0) нет ни одного плохого участка : ответ = 1 (вариант) 1) добавляем первый плохой участок : ответ (в общем случае) = 4 (варианта) 2) добавляем второй плохой участок на каждом шаге поддерживаем список получившихся зданий Потом добавляем следующий плохой участок и смотрим как он рубит какие-то здания из предыдущего списка зданий и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 13:52 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
Про размеры здания непонятно... Как минимум, есть (M * N - K) возможностей построить здание размером в один сектор. Потом еще куча вариантов для строительства зданий размером в два сектора. При M и N чуть больше 25 и К = 500 вариантов будет мало, при M и N, близких к 100, и К, близких к 1, ответ будет огромный. Секторы квадратные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 14:41 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
rockclimberПро размеры здания непонятно... Как минимум, есть (M * N - K) возможностей построить здание размером в один сектор.авторграницы здания должны упираться либо в непригодные для строительства секторы, либо в границы участка.Все границы, очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 14:55 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
AbstractionВсе границы, очевидно.То есть надо найти в той части, что осталось после выкидывания непригодных участков, куски, которые прямоугольные (а не в виде блоков из тетриса)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:11 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
denis_stellграницы здания должны упираться либо в непригодные для строительства секторы, либо в границы участкаЭто означает "Граница здания в КАДЖОЙ точке должна упираться либо в непригодные для строительства секторы, либо в границы участка" или "Каждая сторона здания ХОТЯ БЫ В ОДНОЙ точке должна упираться либо в непригодные для строительства секторы, либо в границы участка"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:20 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
Ну совершенно же четкая и ясная постановка задачи. Я не понимаю как ее можно не понимать....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:39 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
---Rt--------Ну совершенно же четкая и ясная постановка задачи. Я не понимаю как ее можно не понимать....... Человек интуитивно понимает, что размеры здания имеют гораздо большее практическое значение, нежели упор в загадочные "непригодные участки", и компания, заинтересованная в рациональном использовании чего бы то ни было, просто не может рассматривать здание 3x5 и здание 30x50 как объекты одного класса (возможные варианты решения одной и той же задачи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:44 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
под плохим сектором тут имеется в виду типа : в этом месте растет 100-летний дуб и спиливать его нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:45 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
а толщина этих дубов равна 0 Слово сектор тут действительно сбивает с толку, согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:47 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
---Rt--------под плохим сектором тут имеется в виду типа : в этом месте растет 100-летний дуб и спиливать его нельзя. Но можно построить вокруг него зимний сад или внутренний дворик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:49 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
softwarer---Rt--------под плохим сектором тут имеется в виду типа : в этом месте растет 100-летний дуб и спиливать его нельзя. Но можно построить вокруг него зимний сад или внутренний дворик. или шикарный ночной бар =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2013, 15:50 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
AndreTM, здание - размер произвольной формы интересует количество размещений таких зданий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 13:10 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
softwarerAndreTMВопрос два: нужно максимизировать размер "здания" (и посчитать количество размещений такого здания), или нужно посчитать все возможные варианты размещения "зданий" любых размеров? Постановка хреновая, а спрашивается, думаю, примерно следующее: если, начиная с каждой "клеточки" по очереди, расширять "здание" в каждую сторону до упора, то сколько разных прямоугольников будет получено? по идее, так, но мы идем горизонтально, например с слева направо. если клетка "в пригодном секторе-ячейки" идем дальше, если нет запоминаем. нужно и вертикально считать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 13:14 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
---Rt--------Ну совершенно же четкая и ясная постановка задачи. Я не понимаю как ее можно не понимать....... Постановка нормальная, но алгоритм не могу составить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 13:15 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
denis_stellПостановка нормальная, но алгоритм не могу составить. Я вот одного не могу понять: здания должны быть прямоугольниками? Меня смутили твои слова : "... произвольной формы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 15:32 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
denis_stellно алгоритм не могу составить. не переживай по этому пункту У меня есть в запасе штук 20 задач, которые я годами не могу решить Всё нормально, человек не может вот всё решить Ты ж наверняка студень, а мне уже скоро 49 лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 15:36 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
denis_stellздание - размер произвольной формы Хорошее выражение... "сфэрический куб" denis_stellграницы здания должны упираться либо в непригодные для строительства секто- ры, либо в границы участкаА, понял - действительно, при таком условии нужно именно максимизировать размер "здания"-прямоугольника, по месту расположения. На самом деле, существует достаточно простое решение "в лоб": - принимаем границы участка как "непригодные сектора" - проходим по всем "пригодным" секторам; для входа в суммирование - текущий сектор должен быть верхним левым углом "здания" (для этого сектор должен граничить с "непригодными" слева и сверху) -- подсчитываем количество возможных "зданий" в данной позиции (правый нижний угол должен граничить с "непригодными" справа и снизу ) А далее думаем и оптимизируем... Хотел я было ДП прикрутить, но затем немного подумал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 16:30 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
AndreTM- проходим по всем "пригодным" секторам; для входа в суммирование - текущий сектор должен быть верхним левым углом "здания" (для этого сектор должен граничить с "непригодными" слева и сверху) -- подсчитываем количество возможных "зданий" в данной позиции (правый нижний угол должен граничить с "непригодными" справа и снизу ) А далее думаем и оптимизируем... Хотел я было ДП прикрутить, но затем немного подумал...Пусть у нас участок 5х5, один непригодный сектор ровно в центре. По-Вашему, требуемых строений на участке не будет вообще, а на самом деле их целых 4 штуки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 16:45 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
---Rt--------denis_stellно алгоритм не могу составить. не переживай по этому пункту У меня есть в запасе штук 20 задач, которые я годами не могу решить Всё нормально, человек не может вот всё решить Ты ж наверняка студень, а мне уже скоро 49 лет Ну ты и старичелло, браза. Скоро уже пенсию приносить будут а ты всё на ПТ.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 17:16 |
|
||
|
алгоритм - Застройка
|
|||
|---|---|---|---|
|
#18+
Все поле это один прямоугольник N на M. L - список, который содержит пригодные участки. Вначале он стоит из всего участка. 1) Берем первый непригодный участок. В соответствие с ним разбиваем (NxM) на нужно число частей. И добавляем полученные участки пригодные в L, удалив из него NxM. 2) Берем следующий непригодный участок. Находим какие он затрагивает участки из L и разбиваем их также как на шаге 1. Дальше снова 2. До тех пор, пока не закончатся непригодные участки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 18:23 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=58&tid=1341873]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 341ms |

| 0 / 0 |
