|
ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
|
Задача 102893
УсловиеВ стране N городов, в каждом из которых есть аэропорт. Авиакомпания, занимающаяся перевозкой грузов, имеет самолет и желает максимально выгодно его использовать. Для некоторых пар городов (A, B) известны время перелета из A в B и сумма выручки за доставку груза из A в B. Напишите программу, которая по этим данным находит для самолета замкнутый путь, максимизирующий среднюю выручку за единицу времени.Считается, что самолет может вместить не более одного груза, а временем
стоянки самолета в аэропорту следует пренебречь.
РешениеСкачать архив тестов и решенийНужно найти такой цикл D, для которого средняя выручка за единицу времени 1. Существует цикл D положительного c'-веса. Это означает, что 2. Существует цикл D с нулевым (но не положительным) c'-весом. В этом случае
Искать величину z* будем следующим образом. Сначала найдем для нее верхнюю (z1) и нижнюю (z2 ≥ z1 / 2) границы (подумайте, как это сделать!). Далее используем двоичный поиск, деля каждый раз отрезок [z1, z2] пробной точкой z0 = (z1 + z2) / 2 на две равные части и оставляя ту из них, на которой лежит z*. Необходимое при этом количество итераций пропорционально числу правильных значащих разрядов z*, которое мы хотим получить. Источники и прецеденты использования |
|
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|
|