Привет всем, подскажите пожалуйста, может кто сталкивался. Есть ли более менее эффективная реализация задачи.
Необходимо распределить задачи командам. Задачи характеризуются сложностью и числом участников. Сделать это надо так чтобы у каждой команды было примерно одинаковое число задач по сложности.
На ум приходит только следующий рандомизированный алгоритм (желательно чтобы он был недетерминированным):
0) берём все задачи одной сложности
1) берём произвольную задачу
2) смотри какое число участников
3) берём произвольный вектор команд, у которых в матрице импликаций 0.
4) ставим им единицы в матрице импликаций
5) уменьшаем счётчик задач соответствующей сложности