Примечание. Чтобы дать хедз-ап, это не задание для моей школы, так как я сам даже не знаю, в какую школу написал этот вопрос. Надеюсь, не возникло недоразумения.
Я нашел этот интересный вопрос о раздевалке:
В раздевалке Rec есть N шкафчиков с меткой 1, 2,.,., N.
Каждый шкаф заблокирован, но может быть открыт с использованием его уникального ключа.
Копии ключа для каждого шкафчика находятся в соседних шкафчиках; т.е. копия ключа в шкафчик я помещается в шкафчик я + 1 и я - 1 ( ключ к шкафчику 1 находится только в шкафчике 2, а ключ к шкафчику N находится только в шкафчик N - 1).
Т теннисные мячи находятся внутри T-ящиков (и вы знаете, какие из шкафов они находятся). Вы получаете ключи от M шкафчики и ваша цель - собрать все теннисные мячи открывая наименьшее количество шкафчиков.
Для изображений вы можете увидеть его непосредственно в здесь файле.
Я должен дать эти вопросы первому новичку, но сначала хочу убедиться, что у меня уже есть правильный ответ заранее.
Я думаю, что:
-
Необходимо проверить мяч один за другим. Таким образом, для каждого шара (игнорируйте другие шары) каждый ключ должен посещать, пройдя к обозначенному шару. Для каждого ключа вычислите шаги, необходимые для посещения мяча. Наименьший результат хранится в переменной, называемой "total steps".
-
Сделайте эту точную вещь для следующего шара, и когда я получу минимальные шаги для этого текущего шара. Я добавляю это значение к "общим шагам".
-
Применяется специальное условие, если над ключом находится мяч, затем начинается запуск ключа с я + 1 и i-1.
Мой вопрос: я прав? Я не хочу делиться неправильным алгоритмом с другими, так как это непрофессионально. С нетерпением ждем комментариев, предложений и материалов.