nnursejt
17.04.2020 03:06

. Навіщо взагалі створений метод поділу на підзадачі
ЧРОЧНО

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Salvatation1230
24.11.2022 09:55

y, x = map(int, input().split()) #Размеры матрицы, если матрицы имеет квадратную форму, то просто y = x = int(input())

matrix = [list(map(int, input().split())) for i in range(y)] #Заполняем матрицу

ans = [sum(matrix[k][i] for k in range(y)) for i in range(x)] #Находим сумму каждого столбца

print(*ans) #Выводим эти суммы

P.S. Комментарии убери, иначе не будет работать

P.S.S. Версия без коментариев и пример работы:

y, x = map(int, input().split())

matrix = [list(map(int, input().split())) for i in range(y)]

ans = [sum(matrix[k][i] for k in range(y)) for i in range(x)]

print(*ans)

Ввод:

3 4 #Размер

3 4 5 6 #Матрица

1 2 3 4

1 1 1 1

Вывод:

5 7 9 11

0,0(0 оценок)
Ответ:
Danila251008
29.05.2021 03:38

Есть несколько алгоритмов решения такой задачи.

Прямой перебор - попытка перебрать всевозможные последовательности этих команд и посмотреть, какие из них, примененные к 1 сделают из нее 16 - но это долгий , оценка сложности сверху без короткой схемы - это 3^15 таких последовательностей (сколько всего команд) ^ (максимально возможное число команд в подходящей программе, это 15 прибавлений по единичке).

Можно развить подход "от противного", который лежит в основе идей динаимического программирования: обозначив n(x) - какое количество различных программ преобразую число 1 в x, получаем формулу для исходного n(16) = n(15) + n(12) = (n(14) + n(11) + n(5)) + (n(11) + n(8) + n(4)) = ...

Будем считать, что n(1) = 1

Тогда вот функция на питоне для подсчёта искомого числа. Вызов n(16) вернёт результат 136

def n(x):

   if x < 1: return 0

   elif x == 1: return 1

   else: return n(x - 1) + n(x - 4) + (0 if x % 3 != 0 else n(x // 3))

У такого подхода есть несомненное преимущество: его не только проще написать, но и сложность его O(n)

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота