Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2015, 13:02
Ответы с готовыми решениями:

Расчетная ведомость бригады за три месяца содержит информацию о выработке бригады
Расчетная ведомость бригады за три месяца содержит информацию о выработке бригады в рублях,суммарной заработной плате. Эти данные ввести с...

Вывести среднюю зарплату определенной бригады, используя массив для бригады и зарплаты
Пожалуйста , помогите разобраться с заданием. Как вывести среднюю зарплату определенной бригады , используя массив для бригады и зарплаты ?...

Сформировать двумерный массив с числом строк 8-12 и числом столбцов 6-10.
Сформировать двумерный массив с числом строк 8-12 и числом столбцов 6-10. Элементы этого массива - целые числа, формируются функцией...

3
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
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, и выбрать тот вариант, для которого целевая функция минимальна.
Количество вариантов может быть велико
https://www.cyberforum.ru/cgi-bin/latex.cgi?C_N^{Ki}=\frac{N!}{Ki!(N-Ki)!}

Поэтому есть смысл применить динамическое программирование.

Может быть, как вариант:
Найти Ki максимальных элементов в F[], пометить индексы, как не подходящие к использованию. Из оставшихся индексов сформировать единственно возможный вариант бригад, подсчитать целевую функцию. Всё.
1
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 6
14.06.2015, 17:55  [ТС]
А можно код пожалуйста, а то я не понимаю особо ничего и код попроще, чтоб я в нем разобрался. буду очень очень очень вам благодарен, заранее спасибо за ответ:3
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2015, 18:16
Помогаю со студенческими работами здесь

Выполнить задачу минимальным числом инструкций
Люди добрые, помогите тупому Антону( Посчитать количество вхождений в ведѐнный из файла массив элемента x. Последний вводится от...

Выдача денег минимальным числом купюр
Так, может кто сможет подсказать алгоритм суть такая: в банкомате лежат деньги разных номиналов. нужно выдать деньги минимальным...

Вычислить разность между максимальным и минимальным числом
даны: 100 вещественных чисел. вычислить разность между максимальным и минимальным из них.

Вычислить разность между максимальным и минимальным числом
Ребят помогите завтра экзамен , а нужно лабы ещё сдать 6 лаб ((( Вычислить разность между максимальным и минимальным числом. Найти...

Сумма между максимальным и минимальным числом из массива
Как написать программу нахождения суммы между максимальным и минимальным числом из массива 10 однобайтовых чисел?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
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
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru