Этот вопрос программирования выглядит как школьное упражнение;вам, конечно, рекомендуется стараться изо всех сил ... в любом случае, вот несколько советов.
Сначала нам нужно выбрать жадный алгоритм, то есть алгоритм, основанный на некоторой эвристике, которая позволяет нам «оптимизировать» общую стоимость, основываясь на локально оптимальном выборе следующего отеля.(выбор будет выполняться на каждом этапе).
Таким образом, мы должны дать правило, применимое на каждом этапе, которое позволяет нам выбрать следующий отель.
В качестве локального оптимального выбора: мы могли бы выбрать, что каждый день мы движемся вперед, и если мы начнем с точки x
, мы остановимся в следующем отеле, ближайшем к точке x+200
.
В каком-то псевдокоде:
//start from 0
cost=0
position=0
while(position<end)
//find the next best hotel h (based on the rule above)
h=...
//compute the daily_cost
daily_cost=(h-position)^2
//move to the selected hotel
position=h
//and increase the total cost:
total_cost=total_cost+daily_cost
Когда position=end
: мы прибыли, и мы вычислили total_cost
на основе этого жадного алгоритма.