Задачи

В этой теме вас ждут задания, для решения которых не требуется каких - либо специфических алгоритмов или структур данных.
Представьте, что такая задача досталась вам на собеседовании. Ваша цель — придумать достаточно эффективное верное решение и написать к нему код без ошибок. Не забывайте про краевые случаи и проверяйте, что решение работает для всех возможных вариантов входных данных.
Если не получится справиться с какими-то из задач — не расстраивайтесь, у вас еще будет возможность достаточно попрактиковаться в течение курса! Если не знаете, как решать задачу — не стесняйтесь обсуждать её в слаке с другими студентами и наставником.
После того, как закончите с задачами, нужно будет оценить сложность решения. Для этого пройдите тест ниже. Вы также можете обратиться к этому тесту, если требуется помощь в поиске идеи для алгоритма.
Для некоторых заданий существует несколько способов решения. Верный ответ на вопрос про сложность может не соответствовать самому эффективному из решений.
Если ваш алгоритм эффективнее, чем предложенный нами, — отлично, вы молодец. Подумайте какая у него сложность.
А вот и задачи: https://contest.yandex.ru/contest/18338/problems/
Сначала решите их, а к тесту ниже переходите, если сдали задачу или есть сложности с решением.
Задача A.
Какая сложность алгоритма решения этой задачи?
Задача B.
Допущение: Предположим, что количество вузов и студентов не задано. То есть не является константой.
В решении будем использовать массив, в котором будет храниться информация о том, сколько студентов от каждого вуза присутствует на конференции.
Пройдем по массиву k раз и определим k максимальных элементов.
Какая сложность алгоритма решения этой задачи?
Задача C.
Какая сложность алгоритма решения этой задачи?
Задача D.
Какая сложность алгоритма решения этой задачи?
Задача E.
Какая сложность алгоритма решения этой задачи?
Задача F.
Максимально возможное число на этот раз является константой. В решении будем использовать массив длины 10000, изначально заполненный нулями. Какая сложность алгоритма решения этой задачи, если n - размер входного массива?
Задача G.
Какая сложность алгоритма решения этой задачи?
Будем использовать массив, длина которого равна количеству возможных символов в словах. Изначально массив заполним нулями. n - максимум из длин двух строк на входе.
Задача H.
Какая сложность алгоритма решения этой задачи, если n - длина строки?
Задача I.
В решении нельзя использовать встроенную в язык программирования функцию сложения чисел в двоичной системе счисления.
Какая сложность алгоритма решения этой задачи?
Задача J.
В решении будем использовать массив из 10000, изначально заполненный нулями. Какая сложность алгоритма решения этой задачи, если n - максимально возможное количество сотрудников?
Задача K.
Какая сложность алгоритма решения этой задачи, если n - число, подаваемое на вход программе?
Задача L.
В решении будем использовать массив, длина которого равна количеству возможных различных символов на входе.
Какая сложность алгоритма решения этой задачи, если n - длина первой строки, подаваемой на вход?
Обратите внимание, что длины строк отличаются на 1. То есть в качестве n можно рассматривать длину любой из строк.
Задача M.
Допущение: Предполагаем, что в вашем языке программирования строка является изменяемым объектом. То есть, если вы добавляете символ к уже существующей строке, новый объект не создается.
В решении будем использовать массив длины, равной количеству различных символов, которые могут присутствовать в строке, подаваемой на вход.
Какая сложность алгоритма решения этой задачи, если n - длина входной строки?
Задача N.
Какая сложность алгоритма решения этой задачи, если n - длина входной строки?
Задача P.
Какая сложность алгоритма решения этой задачи, если n - количество цифр во входной комбинации?
Задача Q.
Если вы сортировали массив с использованием встроенной в язык программирования функции сортировки, то сложность этой операции O(nlogn).
Решение, которое подразумевает полный перебор всевозможных троек не оптимальное. Подразумевается, что вы реализовали более эффективный алгоритм.
Какая сложность алгоритма решения этой задачи