Тема 27. Программирование – оптимизация по времени и по памяти

27.07 Прочие прототипы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование – оптимизация по времени и по памяти
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#43244

На вход программы поступает последовательность из N  натуральных чисел, все числа в последовательности различны. Рассматриваются всевозможные непустые подмножества, состоящие из элементов последовательности. Необходимо найти количество подмножеств, в которых сумма элементов кратна 2  и некратна 3  .

Пример входных данных:

Первая строка входного файла содержит число N  – общее количество чисел в наборе. Каждая из следующих   N  строк содержит натуральное число, не превышающее 10000  .

Пример входного файла:

5

2

4

8

1

3

Для указанных данных ответом будет являться 10  .

Вложения к задаче
Показать ответ и решение
def sol(k, data):
    ans = [0] * k
    for i in range(len(data)):
        x = data[i]
        ans_new = ans[:]  # Аналог ans.copy()

        # Подсчет ответа для уже существующих подмножеств
        for i in range(k):
            ans_new[(i + x) % k] += ans[i]
        # Составление нового множества из одного числа x
        ans_new[x % k] += 1

        # Сохранение нового количества множеств
        ans = ans_new[:]

    return ans

f = open(’27A.txt’)
n = int(f.readline())
data = [int(f.readline()) for i in range(n)]
ans2 = sol(2, data)
ans6 = sol(6, data)
# Эквивалентные выводы
print(ans2[0] - ans6[0])
print(ans6[2] + ans6[4])

Ответ: 349440 422550200076076467165612474368

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!