|
2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
|
Небоскрёбы12.07.2020, 14:21. Показов 16380. Ответов 8
Метки нет (Все метки)
В Берляндии активно застраивается окраина столицы. Компания "Kernel Panic" руководит постройкой жилого комплекса из небоскрёбов в Новой Берлскве. Все небоскрёбы строятся вдоль шоссе. Известно, что компания уже купила n участков возле шоссе и готовится возводить небоскрёбы, по одному зданию на один участок.
Архитекторы при планировании зданий должны учитывать несколько требований. Во-первых, поскольку земля на каждом участке имеет разные свойства, для каждого небоскрёба есть свое ограничение по количеству этажей, которое он может иметь. Во-вторых, согласно дизайн-коду города, недопустима ситуация, когда для какого-то небоскрёба сразу по обе стороны от него есть небоскрёбы выше него. Более формально, пронумеруем участки целыми числами от 1 до n. Тогда у небоскрёба на участке с номером i количество этажей ai не может быть запланировано больше mi, и также не может быть, что на плане существуют два участка с номерами j и k таких, что j<i<k, и aj>ai<ak. Компания хочет, чтобы суммарное количество этажей в построенных небоскрёбах было как можно больше. Помогите ей спланировать количество этажей для каждого небоскрёба оптимальным образом, то есть так, чтобы выполнялись все ограничения, и при этом суммарное количество этажей было максимально возможным среди всех возможных вариантов, удовлетворяющих данным ограничениям. Входные данные В первой строке задано одно целое число n (1≤n≤500 000) — количество участков. Вторая строка содержит n целых чисел. i-е число задает значение mi (1≤mi≤109) — максимально возможное количество этажей для небоскрёба на участке i. Выходные данные Выведите n чисел ai — количества этажей в плане для каждого небоскрёба, такие, что выполняются все ограничения, а суммарное количество этажей во всех небоскрёбах максимально возможное. Если возможных ответов несколько, выведите любой. Ограничения Время выполнения: 3 секунды
0
|
|
| 12.07.2020, 14:21 | |
|
Ответы с готовыми решениями:
8
Небоскребы Небоскрёбы Небоскрёбы |
|
Заблокирован
|
|
| 12.07.2020, 19:08 | |
|
Нашёл такое:
Пусть мы решаем задачу на каком-то массиве m длины n. Найдем в этом массиве минимальный элемент. Пусть он находится на позиции i (1 6 i 6 n). Мы можем сделать небоскрёб на участке i максимально высоким, присваивая ai = mi. Теперь нам необходимо сделать выбор — нам нужно приравнять к ai либо левую часть массива (a1 = ai,a2 = ai,...,ai−1 = ai), либо правую часть массива (ai+1 = ai,ai+2 = ai,...,an = ai), и решать рекурсивно задачу для оставшейся части массива, пока не придем к массиву единичной длины. Вышеописанная рекурсивная задача имеет всего n различных состояний. В зависимости от метода поиска минимального элемента на отрезке можно получить решение сложности O(n2), O(n√n) или O(nlogn). Есть и другое решение. Можно доказать, что все ответы выглядят следующим образом: с начала массива высота небоскрёбов неубывает, затем начиная с какого-то небоскрёба высота невозрастает. Назовем «вершиной» небоскрёб, на котором происходит смена направления роста величины небоскрёбов. Можно сделать два прохода. Построим два массива l и r длины n. В первом проходе мы идем слева направо. Пусть мы сейчас на позиции i. Если mi — наименьший элемент среди m1,...,mi, тогда li = i × mi. Иначе, возьмем среди чисел m1,m2,...,mi−1 самое правое число, меньшее mi. Пусть позиция этого числа j, тогда li = lj +(i−j)×mi. Аналогично построим массив r. «Вершиной» является такой небоскрёб t, что значение lt + rt −mt максимально. Сложность этого решения может быть O(n2), O(nlogn), O(n) в зависимости от способа поиска «ближайших» чисел слева и справа, меньших текущего. Напишите пожалуйста код!
1
|
|
|
2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
|
| 13.07.2020, 13:48 [ТС] | |
|
Дайте код пожалуйста
0
|
|
|
8841 / 4493 / 1864
Регистрация: 27.03.2020
Сообщений: 7,313
|
||||||
| 13.07.2020, 22:18 | ||||||
Добавлено через 2 минуты За идею - спасибо )))
0
|
||||||
|
25 / 14 / 2
Регистрация: 28.06.2020
Сообщений: 50
|
|
| 14.07.2020, 08:38 | |
|
так вы "добили"?
0
|
|
|
8841 / 4493 / 1864
Регистрация: 27.03.2020
Сообщений: 7,313
|
|
| 14.07.2020, 08:51 | |
|
Почти
Узловой небоскреб находит. Счас цикл слева и справ на понижение высот соседей.....
0
|
|
|
4 / 4 / 0
Регистрация: 28.04.2020
Сообщений: 4
|
||||||
| 14.07.2020, 09:22 | ||||||
|
проходит
3
|
||||||
|
8841 / 4493 / 1864
Регистрация: 27.03.2020
Сообщений: 7,313
|
||||||
| 14.07.2020, 10:28 | ||||||
|
Спасибо.
Долго искал причину выбрасывания по времени:
1
|
||||||
|
1 / 1 / 0
Регистрация: 12.07.2020
Сообщений: 42
|
|
| 14.07.2020, 10:28 | |
|
Большое спасибо! Работает!
0
|
|
| 14.07.2020, 10:28 | |
|
Помогаю со студенческими работами здесь
9
Небоскребы
Небоскребы Небоскрёбы Небоскрёбы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|