РУҚА
25

Шешімі: Максимальная сумма трёх показаний

ЕГЭ · Информатика · Тапсырма 25 · Динамикалық бағдарламалау
ЖоғарыФИПИDD9960Қысқа жауап≈ 15 минутТалдау 4 қадам
Условие

По каналу связи передаётся последовательность целых чисел — показания прибора. В течение $N$ минут прибор ежеминутно регистрирует значение напряжения и передаёт его на сервер. Определите три переданных числа, чтобы между моментами передачи любых двух из них прошло не менее $K$ минут, а сумма этих трёх чисел была максимально возможной. Даны два входных файла: файл A и файл B. В первой строке каждого файла записано натуральное число $K$, во второй — количество показаний $N$ ($1 \leq N \leq 10\,000\,000$, $N > K$), затем следуют $N$ целых чисел, каждое из которых по модулю не превышает $10\,000\,000$. Для файла B нельзя использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов.

Запишите два числа: сначала значение искомой величины для файла A, затем — для файла B. В типовом примере при $K=2$ и последовательности $150, -150, 20, -200, -300, 0$ максимальная сумма равна $170$.

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

4 қадам
1

Пусть $a_i$ — значение показания в момент $i$. Для каждого момента нужно учитывать только показания с индексами не больше $i-K$, поскольку между выбранными моментами должно пройти не менее $K$ минут.

$$j \leq i-K$$
2

Вычисляем лучшие суммы для последовательностей из одного и двух показаний. Для двух показаний к текущему значению добавляется лучший результат для одного показания среди допустимых предыдущих позиций.

$$dp_1[i]=a_i,\qquad dp_2[i]=a_i+\max_{j\leq i-K}dp_1[j]$$
3

Аналогично вычисляем лучший результат для трёх показаний, используя значения $dp_2$ на допустимых предыдущих позициях.

$$dp_3[i]=a_i+\max_{j\leq i-K}dp_2[j]$$

Максимумы по допустимым позициям поддерживаются при одном проходе по файлу, поэтому алгоритм работает за $O(N)$ времени и использует $O(N)$ или $O(K)$ памяти в зависимости от реализации.

Жауап

Числовые ответы для файлов A и B нельзя определить без содержимого приложенных файлов.

Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Проверяют только соседние выбранные показания вместо всех пар.

Используют условие разности индексов больше $K$, хотя требуется не менее $K$ минут.

Перебирают все тройки показаний, что неприемлемо для файла B.

Не учитывают отрицательные значения и инициализируют максимум нулём.

Закрепить приёмВ теме «Динамикалық бағдарламалау» ещё 71 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 25 ЕГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 4 шага: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Динамикалық бағдарламалау»: в ней 72 задачи, и у каждой есть такой же разбор. Тіркеу қажет емес.