Ctrl K

Спуск по строкам

Средняя
Дано поле field из m строк и n столбцов; в нём записаны все числа от 0 до m·n − 1, каждое ровно один раз. Вы начинаете в любой клетке верхней строки и спускаетесь вниз: из клетки в строке r можно перейти в любую клетку строки r + 1. Переход из клетки со значением v в столбец d следующей строки стоит hop_cost[v][d]. Стоимость пути — сумма значений всех посещённых клеток плюс стоимость всех переходов. Путь заканчивается в любой клетке нижней строки. Верните наименьшую стоимость такого пути.
Пример 1
field=[[2, 0], [1, 3]], hop_cost=[[6, 2], [4, 9], [1, 7], [5, 5]] → 4

Путь 2 → 1: клетки дают 2 + 1, переход из клетки 2 в столбец 0 стоит 1, итого 4. Лучший из остальных путей, 0 → 3, стоит 0 + 3 + 2 = 5.

Пример 2
field=[[3, 4, 0], [1, 5, 2]], hop_cost=[[8, 9, 7], [1, 1, 1], [1, 1, 1], [2, 6, 3], [10, 1, 10], [1, 1, 1]] → 6

Выгоднее всего 3 → 1: клетки дают 3 + 1, переход стоит 2, итого 6.

Пример 3
field=[[1, 0], [2, 3], [5, 4]], hop_cost=[[3, 3], [1, 2], [2, 2], [4, 1], [1, 1], [1, 1]] → 10
Ограничения
  • 2 ≤ m, n ≤ 50
  • В field встречаются все числа от 0 до m·n − 1 ровно по одному разу
  • len(hop_cost) = m·n, len(hop_cost[v]) = n
  • 1 ≤ hop_cost[v][d] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол СредняяСамый большой сплошной квадрат СредняяЛучшее место для пушки СредняяШаги до ближайшего нуля Средняя
загружаем Python…
Вход
field=[[2, 0], [1, 3]], hop_cost=[[6, 2], [4, 9], [1, 7], [5, 5]]
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 6 тестов на сервере, включая скрытые.