|
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 6
|
|
Сформировать бригады с минимальным "числом неудобства"14.06.2015, 13:02. Показов 1364. Ответов 3
Метки нет (Все метки)
Пожалуйста, помогите решить, я сам пытался, но ничего не получается. Буду очень очень благодарен С:
В классе учатся N человек. Руководитель получил указание направить на субботник R бригад по С человек в каждой. Все бригады будут заниматься переноской бревен. Каждое бревно одновременно несут все члены одной бригады. При этом бревно нести тем удобнее, чем менее различается рост членов этой бригады. Числом неудобства бригады будем называть разность между ростом самого высокого и ростом самого низкого членов этой бригады (если в бригаде только один человек, то эта разница равна 0). Руководитель решил сформировать бригады так, чтобы максимальное из чисел неудобства сформированных бригад было минимально. Формат входных данных: Сначала вводятся натуральные числа N, R и C — количество человек в классе, количество бригад и количество человек в каждой бригаде (1 ≤ R∙C ≤ N ≤ 100 000). Далее вводятся N целых чисел — рост каждого из N учеников. Рост — натуральное число, не превышающее 1 000 000 000. Формат выходных данных: Выведите одно число – наименьшее возможное значение максимального числа неудобства сформированных бригад.
0
|
|
| 14.06.2015, 13:02 | |
|
Ответы с готовыми решениями:
3
|
|
Модератор
|
|
| 14.06.2015, 15:00 | |
|
Могу предложить без программы поток сознания.
Пусть Kw:=R*C - количество задействованных в работе учеников Ki:=N-Kw - количество незанятых в работе учеников G[1..N] - уже отсортированный список роста учеников. F[1..N-C+1] - список чисел неудобства бригады из C человек, где F[i] - число неудобства бригады, в которую включены ученики с i по i+C-1. B[1..C] - состав бригад, где B[i] содержит номер ученика, с которого начинается бригада. Можно хранить в B[i] не просто номер ученика, а только некое смещение, ведь очевидно, что в i-тую бригаду могут включатся ученики от C*(i-1)+1 по C*(i-1)+1+Ki. Таким образом в B[i] находится число от 0 до Ki, причём B[i]<=B[i+1]. Осталось выполнить перебор возможных значений B, и выбрать тот вариант, для которого целевая функция минимальна. Количество вариантов может быть велико Поэтому есть смысл применить динамическое программирование. Может быть, как вариант: Найти Ki максимальных элементов в F[], пометить индексы, как не подходящие к использованию. Из оставшихся индексов сформировать единственно возможный вариант бригад, подсчитать целевую функцию. Всё.
1
|
|
|
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 6
|
|
| 14.06.2015, 17:55 [ТС] | |
|
А можно код пожалуйста, а то я не понимаю особо ничего и код попроще, чтоб я в нем разобрался. буду очень очень очень вам благодарен, заранее спасибо за ответ:3
0
|
|
|
Модератор
|
|
| 15.06.2015, 18:16 | |
|
На код у меня уже не хватает времени. Но оцениваю его не более, чем 100 строк.
1. Ввод N и массива роста G. 2. Сортировка массива G (любым способом). 3. Расчёт Kw и Ki (от слов work и idle). 4. Расчёт F[i]. 5. В цикле поиск наибольших F[i] в количестве Ki штук, запоминание индексов в массиве BadIndexes[1..Ki]. 6. Построение однозначного списка бригад (без индексов из BadIndexes). Вычисление максимального из F[i], где i принимает лишь значения начала каждой бригады. 7. Вывод результата. Не по теме: Плюс - лично мне интересно было попытаться нащупать алгоритм. Работать за неучей - прости, надоело - приходит такой неуч на работу, ему ничего не поручить (он "уже забыл, учителя не учили и прочее"), а таких орды, они гавкучие и дремучие. Уже проходил - доказывал орде, что КПД не превышает 100%. Добавлено через 23 часа 37 минут Вот ссылка на разбор задачи.
1
|
|
| 15.06.2015, 18:16 | |
|
Помогаю со студенческими работами здесь
4
Выдача денег минимальным числом купюр
Сумма между максимальным и минимальным числом из массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|