|
0 / 0 / 0
Регистрация: 14.08.2020
Сообщений: 2
|
||||||
Определить минимальное количество корректных отрезков, на которое можно разбить заданную последовательность. Версия 218.08.2020, 21:33. Показов 2956. Ответов 3
Известно, что если сохранить в каждом слове текста первую и последнюю букву, а остальные переставить произвольным образом, получившийся текст по-прежнему можно достаточно свободно прочитать. В лаборатории информатики исследуют аналогичный феномен для числовых последовательностей.
Будем называть последовательность, состоящую из целых положительных чисел, корректной, если первое число в этой последовательности является минимальным, а последнее — максимальным. Например, последовательности [1, 3, 2, 4] и [1, 2, 1, 2] являются корректными, а последовательность [1, 3, 2] — нет. Задана последовательность [a1,a2, ...,an] . Будем называть отрезок элементов заданной последовательности [al,al+ 1, ...,ar] корректным, если он представляет собой корректную последовательность: al является минимальным числом на этом отрезке, а ar — максимальным. В рамках исследования необходимо разбить заданную последовательность на минимальное количество непересекающихся корректных отрезков. Например, последовательность [2, 3, 1, 1, 5, 1] можно разбить на три корректных отрезка: [2, 3] и [1, 1, 5] и [1]. Требуется написать программу, которая по заданной последовательности определяет, на какое минимальное количество корректных отрезков её можно разбить. Входные данные Первая строка входных данных содержит целое число n (1 ≤n≤ 300000) — количество элементов в заданной последовательности. Вторая строка содержит n целых чисел a1,a2, ...,an — заданную последовательность (1 ≤ai≤ 109). Выходные данные Выведите одно число — минимальное количество корректных отрезков, на которое можно разбить заданную последовательность. На форуме уже есть решения этой задачи, с которыми я ознакомился: Задача "Расшифровка" Определить минимальное количество корректных отрезков, на которое можно разбить заданную последовательность. Свой код я написал еще до того как полез на форум:
Помогите найти ошибку, пожалуйста! Буду благодарен даже за тест, в котором прога выдает неверный ответ. P.S: Я вроде уже перебрал все тесты, где может что-то пойти не так, но проверяющая система пишет, что программа выдает неверный ответ. Уже даже "защиту от дурака" сделал, на всякий случай. Добавлено через 24 минуты Краткое описание алгоритма: бегу по массиву, сохраняя возрастающие последовательности в другой массив. Если нахожу число, которое больше максимума определенной последовательности из второго массива, то я сливаю эту последовательность, и последовательность, которую я строю сейчас. Работать продолжаю с уже новой возрастающей последовательностью, и так далее. Если нахожу элемент, который меньше минимума среди минимумов последовательностей в массиве(это значит, что дальнейшие последовательности уже нельзя будет слить), то я опустошаю массив и прибавляю к счетчику корректных последовательностей его длину. Тоже самое делаю в самом конце.
0
|
||||||
| 18.08.2020, 21:33 | |
|
Ответы с готовыми решениями:
3
Определить минимальное число групп, на которое можно разбить все числа от 1 до N Вычислить минимальное количество сбалансированных групп, на которое можно разбить всех работников компании |
|
5517 / 2870 / 571
Регистрация: 07.11.2019
Сообщений: 4,761
|
||||||
| 24.08.2020, 06:51 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.08.2020
Сообщений: 2
|
|
| 24.08.2020, 18:34 [ТС] | |
|
Извините, не совсем понял что Вы хотели этим показать. Тест на первой строчке у меня проходит. Если Вы хотите предложить решение на второй строчке, то оно также будет выдавать неверный ответ, потому что Вы просто суммируете участки где текущий элемент меньше предыдущего, как я понял. К примеру, в тесте x = [1, 3, 2, 4] Ваша программа выдаст 2, хотя правильный ответ 1.
0
|
|
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
||||||
| 24.08.2020, 21:29 | ||||||
Сообщение было отмечено Ruchey как решение
Решение
Добавлено через 2 минуты
https://informatics.mccme.ru/m... d=113915#1 Там есть результаты отдельных тестов Добавлено через 14 минут
Похоже, если последний элемент равен минимуму последовательности и встречался раньше, то он не считается в "s"
1
|
||||||
| 24.08.2020, 21:29 | |
|
Помогаю со студенческими работами здесь
4
Количество плиток, которое можно уложить на заданную площадь Определить количество слов, которое содержат заданную букву определенное количество раз Максимальное количество кусочков, на которое можно разбить слово На какое минимальное и максимальное количество слогов можно разбить слово Определить минимальное количество пролетов, которое нужно проехать чтобы определить неисправные индикаторы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|