Задать вопрос
Lite_stream
@Lite_stream

Как довести задачу на min cost flow?

Самолет последовательно посещает города от 1 до n. Для каждой пары (i, j) известно, что pi,j пассажиров хотят сесть на самолет в городе i и сойти в городе j. Каждый из этих pi,j пассажиров готов заплатить fi,j денег за поездку. Найдите максимальную прибыль при условии, что самолет может одновременно вместить не более k человек.

Если поток использовать как ограничение на вместимость самолёта, а обратив cost'ы на (-1)*pij*fij и находя кратчайшие (длиннейшие) пути (это можно сделать, потому что получившийся граф - dag) найти min cost, то вроде всё ок, за исключением двух проблем: пассажиры pij могут выйти не на своей станции (рёбра vij->t проблемные) и cost некратный fij

Граф для пар (1,4) и (2, 3) на 5-ти вершинах
675ebff74d36a810739993.png
  • Вопрос задан
  • 90 просмотров
Подписаться 2 Простой 7 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы