|
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
|
|||||||||||||||||||||
Найти максимальное число непересекающихся отрезков14.03.2021, 21:39. Показов 4643. Ответов 0
Метки нет (Все метки)
На конференции желает выступить N министров. Но поскольку министры, очень заняты, каждый из министров назначил время, когда он хочет выступить с докладом. Естественно, министры не смогли распределить время между собой, поэтому заявленные ими времена пересекаются. Перед вами стоит задача выбрать из всех поданных заявок несколько непересекающихся, при этом максимизировать число выбранных заявок.>
Входные данные Первая строка входных данных содержит натуральное число N ≤ 10000. Далее идет N строк, каждая из которых содержит два целых числа Si и Ti, 0 ≤ Si < Ti ≤ 109. Каждая строка соответствует одной заявке с номером i (1 ≤ i ≤ N), Si является временем начала заявки, Ti – временем ее окончания. >Программа должна найти подмножество множества {1, 2, ..., n}, содержащее наибольшее число элементов, такое, что для любых двух элементов i и j из найденного подмножества верно одно из двух неравенств: Ti ≤ Sj или Tj ≤ Si. Указанные неравенства означают, что заявки с номерами i и j не пересекаются, то есть одна из них заканчивается не позднее, чем начинается другая. При этом время окончания одной удовлетворенной заявки может совпадать со временем начала другой заявки (один министр на трибуне меняется на другого министра). Выходные данные Программа должна вывести номера удовлетворенных заявок в произвольном порядке, разделяя их пробелами. Заявки нумеруются, начиная с 1. входные данные
Я пытаюсь реализовать нечто похоже на жадный алгоритм. Есть кортеж из четырех элементов: левый конец отрезка, правый конец, номер в списке исходных данных и еще одна ячейка, где изначально нули. Сначала сортируем кортеж по возрастанию относительно левых концов. Далее перебираем, какая заявка будет первой, это m (нумерация с нуля). Если m - первая, то следующая, как минимум, имеет номер m+1. Создадим переменную max, в которой хранится максимально достигнутый правый конец при первой заявке с номером m. Будем перебирать отрезки, начиная с m+1 до t - исходного количества, сравнивая правые концы, определим, сколько заявок получится подать, если первая заявка - заявка с номером m. Это число запишем в 4 элемент кортежа. Так считаем, сколько заявок получится подать, если первая имеет номер от 0 до t-1. Сортируем кортеж по возрастанию относительно 4 элемента, повторяем цикл для отрезка, который теперь окажется самым первым в кортеже и выводим ответ. Не проходит половину тестов, не понимаю, что делаю не так.
Добавлено через 16 минут Вопрос решен, было достаточно отсортировать правые границы в порядке возрастания и добавлять в ответ отрезок, если левая граница больше максимума правых.
0
|
|||||||||||||||||||||
| 14.03.2021, 21:39 | |
|
Ответы с готовыми решениями:
0
Программа должна выводить координаты отрезка в границы которого входит максимальное число отрезков подаваемых на вход Максимальное множество непересекающихся отрезков Соединение точек мах # непересекающихся отрезков |
| 14.03.2021, 21:39 | |
|
Помогаю со студенческими работами здесь
1
Множество непересекающихся отрезков с максимальной суммой длин Выбрать из отрезков наибольшее количество непересекающихся между собой Найти максимальное k, для которого существует точка прямой, покрытая k отрезками («максимальное число слоёв»). Найти число пересечений отрезков Найти минимальное положительное число и максимальное отрицательное число среди заданных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|