Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №10115
А
Аноним
11 июня 2023 12:35 · публичный вопрос
А
Аноним

Проверь мой ответ на задание ЕГЭ по предмету Информатика. Задание: 18. Текст задания: "Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз — в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.   Задание 18   Откройте файл. Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответ запишите два числа друг за другом без разделительных знаков — сначала максимальную сумму, затем минимальную. Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата. Пример входных данных:   1 8 8 4 10 1 1 3 1 3 12 2 2 3 5 6   Для указанных входных данных ответом должна быть пара чисел 41 и 22." Мой ответ: "5371360" Верный ответ на это задание: "1360537" Ответ структурируй: Скажи, правильно ли я ответил на задание, Коротко объясни все термины и понятия, которые нужны для решения задания, и Объясни, как нужно было решать это задание Твой ответ не должен превышать 4096 токенов

Нейросеть11 июня 2023 12:35

Твой ответ на задание неверный.

Для решения задания необходимо использовать динамическое программирование.

Каждый раз, когда Робот приходит в новую клетку, он должен выбирать из двух возможных путей - пойти вправо или вниз, тот путь, который принесёт ему больше денег. Для каждой клетки нужно вычислить, какая сумма денег будет наибольшей, если Робот пойдет по пути, начинающемуся из этой клетки. Это можно сделать, использовав следующую формулу:

max_sum(i,j) = max(max_sum(i-1, j), max_sum(i, j-1)) + sum(i,j)

где max_sum(i,j) - максимальная сумма денег, которую можно собрать, если начать путь из клетки (i,j); sum(i,j) - сумма денег, лежащая в клетке (i,j).

Так же нужно вычислить минимальную сумму, для этого формула будет выглядеть следующим образом:

min_sum(i,j) = min(min_sum(i-1, j), min_sum(i, j-1)) + sum(i,j)

где min_sum(i,j) - минимальная сумма денег, которую можно собрать, если начать путь из клетки (i,j); sum(i,j) - сумма денег, лежащая в клетке (i,j).

Искомые максимальную и минимальную суммы можно будет найти в клетках (N,N) на основании значений max_sum и min_sum.

Таким образом, ответ на задание для данного примера будет:

1360537

41

Оцени мой ответ, пожалуйста, лайком или дизлайком.

Проверь мой ответ на задание ЕГЭ по предмету Информатика. Задание: 18. Текст задания: "Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз — в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.   Задание 18   Откройте файл. Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответ запишите два числа друг за другом без разделительных знаков — сначала максимальную сумму, затем минимальную. Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата. Пример входных данных:   1 8 8 4 10 1 1 3 1 3 12 2 2 3 5 6   Для указанных входных данных ответом должна быть пара чисел 41 и 22." Мой ответ: "5371360" Верный ответ на это задание: "1360537" Ответ структурируй: Скажи, правильно ли я ответил на задание, Коротко объясни все термины и понятия, которые нужны для решения задания, и Объясни, как нужно было решать это задание Твой ответ не должен превышать 4096 токенов
Твой ответ на задание неверный. Для решения задания необходимо использовать динамическое программирование. Каждый раз, когда Робот приходит в новую клетку, он должен выбирать из двух возможных путей - пойти вправо или вниз, тот путь, который принесёт ему больше денег. Для каждой клетки нужно вычислить, какая сумма денег будет наибольшей, если Робот пойдет по пути, начинающемуся из этой клетки. Это можно сделать, использовав следующую формулу: max_sum(i,j) = max(max_sum(i-1, j), max_sum(i, j-1)) + sum(i,j) где max_sum(i,j) - максимальная сумма денег, которую можно собрать, если начать путь из клетки (i,j); sum(i,j) - сумма денег, лежащая в клетке (i,j). Так же нужно вычислить минимальную сумму, для этого формула будет выглядеть следующим образом: min_sum(i,j) = min(min_sum(i-1, j), min_sum(i, j-1)) + sum(i,j) где min_sum(i,j) - минимальная сумма денег, которую можно собрать, если начать путь из клетки (i,j); sum(i,j) - сумма денег, лежащая в клетке (i,j). Искомые максимальную и минимальную суммы можно будет найти в клетках (N,N) на основании значений max_sum и min_sum. Таким образом, ответ на задание для данного примера будет: 1360537 41 Оцени мой ответ, пожалуйста, лайком или дизлайком.