|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2022, 00:26 | #1 |
Новичок
Джуниор
Регистрация: 24.07.2022
Сообщений: 3
|
python задача
У программиста есть ряд задач на n дней, время выполнения которых находится в массиве time . Задачи расположены строго в порядке приоритета выполнения. Программист не хочет перерабатывать, а хочет больше заниматься хобби и отдыхать: ему надо распределить задачи так, чтобы они занимали как можно меньше времени в течение каждого дня.
Найдите длительность самого долгого рабочего дня в минутах. Менять местами задачи нельзя, выполнять их можно строго в порядке приоритета: последовательно двигаясь по массиву. Ввод: time[] — целочисленный массив, включающий время выполнения каждой задачи, 0<time[i]<500, 1<length(time)<15 . n — количество дней, 0<n<10 . Вывод: integer — количество минут в самый длинный рабочий день. print(get_result([100,90,80,70,60],4)) #130: лучше всего сделать так: в первый день 100, во второй 90, в третий 80,а в последний 70+60=130 print(get_result([180,90,110,200,140],4)) #200: 180->90+110->200->140 |
26.07.2022, 02:25 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Количество задач и дней позволяет просто перебрать все варианты распределения задач по дням. Пусть T = length(time), тогда нужно выбрать из T - 1 возможных мест разделения задач n - 1 мест, по которым разделить список time. Количество вариантов равно числу сочетаний (Сочетание). Можно самому генерировать варианты или воспользоваться combinations из модуля itertools. Останется только делить список по индексам, искать суммы каждого подсписка, затем искать максимум из этих сумм. Это для одного варианта разделения списка, а среди всех вариантов искать минимум. При правильном комбинировании min, max, map, sum, zip и combinations можно всё решить в одну строчку.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложная задача на С++ | Silver_561 | Помощь студентам | 17 | 21.05.2022 15:54 |
VBA Код сложная задача.. | Slavatron1984 | Microsoft Office Excel | 4 | 01.09.2013 21:41 |
Не сложная задача | maxwel6064 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 02.01.2012 13:56 |
Сложная задача! | Pashok6 | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 02.01.2012 00:03 |
задача на вид сложная | erik2 | Microsoft Office Excel | 3 | 21.02.2011 01:16 |