Алгоритм расстояния - минимальные монеты, необходимые для очистки всех уровней
Тор играет в игру, где есть N уровней и M типов доступного оружия. Уровни пронумерованы от 0 до N-1, а оружие-от 0 до M-1 . Он может очистить эти уровни в любом порядке. На каждом уровне требуется некоторое подмножество этих М-видов оружия, чтобы очистить этот уровень. Если на определенном уровне ему нужно купить x новых видов оружия, он заплатит за это x^2 монеты. Также обратите внимание, что он может нести все оружие, которое у него есть в настоящее время, на следующий уровень . Изначально у него не было никакого оружия. Можете ли вы узнать минимальное количество монет, необходимых для того, чтобы он мог очистить все уровни?
Формат ввода первая строка ввода содержит 2 целых числа, разделенных пробелами: N = количество уровней в игре M = количество видов оружия
Далее следует N строк. I-я из этих строк содержит двоичную строку длины M. Если j-й символ этой строки равен 1, это означает, что нам нужно оружие типа j, чтобы очистить I-й уровень.
Ограничения 1 <= N <=20 1<= M <= 20
Формат вывода выведите одно целое число, которое является ответом на проблему.
Образец Теста 1
Ввод
1 4
0101
Выход 4
Объяснение в этой игре есть только один уровень. Нам нужно 2 вида оружия - 1 и 3. поскольку изначально у Тора нет оружия, ему придется купить их, что обойдется ему в 2^2 = 4 монеты.
Тестовом Примере 2
Ввод
3 3
111
001
010
Выход 3
Объяснение в этой игре есть 3 уровня. Для 0-го уровня (111) требуются все 3 вида оружия. 1-й уровень (001) требует только оружие типа 2. 2-й уровень требует только оружие типа 1. Если мы очистим уровни в заданном порядке(0-1-2), то общая стоимость = 3^2 + 0^2 + 0^2 = 9 монеты. Если мы очистим уровни в порядке 1-2-0, это будет стоить = 1^2 + 1^2 + 1^2 = 3 монеты, которые являются оптимальным способом.
Что я уже пробовал:
Я знаю, что это можно сделать с помощью алгоритмов расстояния, любая помощь будет оценена по достоинству
PIEBALDconsult
Удачи тебе с этим.
Я бы применил грубую силу.
Patrice T
И вы можете сказать нам, какой сайт делает этот "конкурентный вызов"?
RaviManna
https://stackoverflow.com/questions/49772462/competitive-coding-clearing-all-levels-with-minimum-cost-not-passing-all-tes