18.06 Прочие прототипы
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов.
Квадрат разлинован на *
клеток. Исполнитель Робот может перемещаться по клеткам, выполняя за одно
перемещение одну из двух команд: вправо или вверх. По команде вправо Робот перемещается в соседнюю правую клетку,
по команде вверх - в соседнюю верхнюю. При попытке выхода за границу квадрата Робот разрушается. В квадрате есть
клетки, помеченные зеленым. В них сидят котики. Робот очень любит котиков и обязательно пройдет через эти клетки,
чтобы погладить котиков. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от
до
. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута
Робота.
Откройте файл. Определите максимальную денежную сумму, которую может собрать Робот, начиная путь из нижней левой клетки. В ответ запишите одно число - максимальную сумму, которую может собрать Робот.
Так как нам обязательно нужно пройти через зелёные клетки, то в исходной таблице добавим в каждую по
.
Добавляем пустой столбец (нажимаем правой кнопкой мыши на столбец и выбираем Вставить).
Копируем таблицу и с помощью специальной вставки () вставляем только её формат.
В начало маршрута (в нашем случае ) записываем значение левой нижней клетки данной нам таблицы. В клетку
записываем формулу =МАКС(B21;C22)+C9
Вставляем эту формулу во все оствшиеся клетки таблицы. Не забываем, что мы специально добавили несколько
миллионов. Так как Робот посетил зеленые клетки, то запишем в свободную ячейку формулу =К13-3000000, полученное
число и есть ответ.
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Квадрат разлинован на клеток
. Исполнитель Оборотень может перемещаться по клеткам вправо
и вниз, но когда он делает
хода в одном направлении (не обязательно подряд), он перевоплощается (если он был в
первом стостоянии перевоплощается во второе, если во втором - в первое). При перевоплощении счетчики его ходов
обнуляются. В первом своем состоянии по команде вниз Оборотень перемещается на одну клетку вниз, по команде вправо -
на одну клетку вправо. Во втором состоянии при таких же командах он перепрыгивает через одну клетку в
соответствующем направлении. При попытке выхода за границу квадрата Оборотень умирает. Перед каждым запуском
Оборотня в каждой клетке квадрата лежит кусок мяса сытностью от
до
. Посетив клетку, Оборотень насыщается и
съедает мясо (увеличивает значение насыщенности на сытность мяса); это также относится к начальной и
конечной клетке маршрута Оборотня. Изначально значение насыщенности равно сытности мяса в стартовой
клетке.
Откройте файл. Определите максимальное значение насыщенности, которого может достичь Оборотень, пройдя из верхней левой клетки в правую нижнюю.
Исходные данные представляют собой электронную таблицу размером , каждая ячейка которой соответствует
клетке квадрата.
Откроем файл в Excel. Выделим все числа и скопируем их в текстовый документ. Для удобства с помощью комбинации Ctrl + H заменим большие отступы между числами одним пробелом.
Теперь напишем программу для решения задачи:
#хватит 9 ходов вправо и 9 ходов вниз f = open(’15.txt’) a = [] for i in range(13): a.append([int(s) for s in f.readline().split()]) #стартуем из a[0][0], заканчиваем в a[12][12] #генерируем маршрут из 18 ходов двоичной маской #вправо - 1 вниз - 0 ma = -10**20 for k in range(2**18): t = k mask = [] for j in range(18): mask.append(t%2) t//=2 #погнали теперь пробежимся по этой маске! state = 1 x,y=0,0 right,down = 0,0 s = a[0][0] for j in range(18): if mask[j]==0: y+=state right+=1 else: x+=state down+=1 if right==3 or down==3: state = 3-state right = 0 down = 0 if x>12 or y>12: break s+=a[x][y] if x==12 and y==12: #успешный конец миссии! if s>ma: ma = s break print(ma)
Ошибка.
Попробуйте повторить позже
Квадрат разлинован на клеток (1 < N < 20). Исполнитель Муравьед может перемещаться по клеткам,
выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Муравьед перемещается в
соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке пересечь границы квадрата,
обозначенные жирными линиями, Муравьед разрушается.
В каждой клетке квадрата указан тип муравья латинскими буквами A, B или C. Посетив клетку, Муравьед либо наедается муравьем – получает XP, либо отравляется – отнимает XP; это также относится к начальной и конечной точке маршрута. За съедение муравья A отнимается 10 XP, за съедение муравья B прибавляется 1 XP, за съедение муравья C прибавляется 2 XP.
Определите максимальное и минимальное количество XP, которое может получить Муравьед, пройдя из левой верхней клетки в правую нижнюю, так как наш Муравьед почти бог этого мира, то его XP может быть отрицательным. В ответе укажите два числа через пробел – сначала максимальное количество XP, затем минимальное количество XP. В начальный момент времени у Муравьеда 0 XP.
Создаем ниже исходного поля, новое такого же размера (ячейки ) и в левой верхней ячейке этого поля
записываем формулу:
=ЕСЛИ(A1="A";-10;ЕСЛИ(A1="B";1;2))
Создадим рядом еще одно поле такого же размера (ячейки ) . В левую верхнюю клетку нового поля,
записываем значение из левой верхней клетки предыдущего поля – 2.
Сначала заполним значениями верхнюю строку. Для этого к значенею из левой верхней клетки нового поля,
прибавим значение из клетки , сделаем это с помощью формулы:
=A39+B20
Теперь, чтобы заполнить оставшиеся ячейки верхней строки нового поля, растянем эту формулу на всю строку. Подобным образом заполним левый столбец нового поля.
Найдем максимальное значение суммы. Рассмотрим ячейку , в нее мы можем попасть из
и
, тогда,
чтобы в этой клетке суммы была максимальной, необходимо выбрать максимальную сумму из тех двух клеточек, из
которых можем попасть в эту. В ячейку
запишем формулу:
=МАКС(A40;B39)+B21
Теперь растянем эту формулу на все свободные ячейки поля. В правом нижнем углу будет число, которое является максимальной суммой, которую может собрать робот.
Для минимальной суммы порядок действий аналогичный, только формула в будет выглядеть так:
=МИН(A40;B39)+B21