Есть одна прямая дорога. А на некотором расстоянии какая-то работа присутствует. И каждая работа имеет какое-то значение.
Теперь математически нам дан массив местоположений, location[]
. и там указан массив важности, importance[]
.
Если вы перемещаетесь из одной точки в другую, механик должен идти и выполнять работу в этом месте.
И механик должен делать всю работу.
Нам нужно минимизировать сумму (важность*расстояние).
Пример для лучшего понимания: -
position :- 1 6 12 13 14 24
importance :- 1 2 10 3 5 1
Если мы начнем с 6 и будем двигаться следующим образом
6 --> 12 ---> 13 ---> 14 --> 1 --> 24
= (10*6) + (3*7) + (5*8) + (1*21) + (1*44) = 186
Если двигаться следующим образом,
12 --> 13 --> 14 --> 6 --> 1 --> 24
= (3*1) + (5*2) + (2*10) + (1*15) + (1*38) = 86
So the minimum answer is 86
Мой подход
Сначала нам нужно рассчитать, с чего нам нужно начать. Для этого найдите центр тяжести.
Для позиции = 1 (5*2) + (11*10) + (12*3) + (13*5) + (23*1) = 244
Для позиции = 6 (5*1) + (6*10) + (7*3) + (8*5) + (18*1) = 144.
Аналогичным образом рассчитаем для всех позиций и выберем минимальное значение, т. е. Center of gravity
.
Но после выбора этой точки, как перейти на другие позиции, для меня недоступно.
Но я не могу завершить алгоритм. Пожалуйста, помогите в этом.
importance * waiting_time
. Гдеwaiting_time
– это сумма всех расстояний, пройденных до посещения этой позиции. В вашей формулировке это только расстояние, пройденное с момента последней позиции. - person Stefan   schedule 24.02.2014v1 -> v2 -> v3
кv1 -> v3 -> v2
. - person C.B.   schedule 24.02.2014