UniLecs | Программирование
17.2K subscribers
1.01K photos
7 videos
3 files
1.27K links
🤘🏻Задачи, головоломки, книги и другие радости программиста.

Оглавление канала: telegra.ph/UniLecs-FAQ-09-30

Чат: @unilecs_chat
Бот: @unilecsBot
VK: vk.com/unilecs

Админ, сотрудничество: @dashalvv
Редактор: @amdavletov
Download Telegram
Task #229: Кубики

Задачу можно решить с помощью двумерного динамического программирования. Пусть f(n,k) — количество пирамидок высоты k с основанием n.

Смотрим полный разбор (2 мин)

#task_229 #решаем_задачки_дома
Puzzle #81: Разбить по группам

Смотрим разбор (1 мин)

#puzzle_81
Анонс #230. Быстрый маршрут

Одна из классических задач на поиск оптимального маршрута из точки А в точку B!

Анонс задачи (1 мин)

#announcement #task_230 #решаем_задачки_дома
Task #230. Быстрый маршрут

Задачу можно решить алгоритмом Дейкстры, но его необходимо модифицировать. Вместо расстояния до вершины i будем хранить ...

Смотрим полный разбор (2 мин)

#task_230 #решаем_задачки_дома
UPD: Разбор

Так как 300 и 198 делятся на 6, Петя сможет снять лишь сумму, кратную 6 долларам. А максимальное число, кратное 6 и не больше 500 равно 498.
Итак, как можно снять 498 долларов. Произведём следующие операции:
● 500 – 300 = 200,
● 200 + 198 = 398,
● 398 – 300 = 98,
● 98 + 198 = 296,
● 296 + 198 = 494.
После этого сумма, лежащая в банке, уменьшилась на 6 долларов. Проделываем подобную процедуру 16 раз, после этого Петя снимет 96 долларов. Далее он может снять 300, положить 198 (остается 102 и 96) и снова снять 300.
Итого будет ровно 498 долларов.

#puzzle_82
Теперь и мой говнокод код будут изучать потомки через 1000 лет 😜

#ArcticCodeVault #github
Анонс #231. Обрезка строки

Задача из раздела динамического программирования, дерзайте! Разбор с решением опубликуем в понедельник!

Анонс задачи (1 мин)

#announcement #task_231 #решаем_задачки_дома
Task #231. Обрезка строки

Итак воспользуемся методом динамического программирования. Пусть dl, r - наименьшее кол-во символов, которое следует удалить из подстроки s(l)...s(r)...

Смотрим полный разбор (2 мин)

#task_231 #решаем_задачки_дома
UPD: Разбор

Пункт отправления:
● Первая буква либо Б (2), либо У (21).
● Варианты для вторых букв: БА (21), БК (212), УБ (212), УФА (21221). Получили возможный ответ — УФА.
● Проверим другие варианты для третьих букв: БАБ (212), БАФА (21221), БКБА (21221), БКУ (21221), УБУ (21221), УББА (21221).
Итак, мы определили, что поезд отправляется из Уфы, аналогично определяем пункт назначения и получаем Баку.

#puzzle_83
Анонс #232. Счастливый телефонный номер

Если вы не запрогаете эту задачу за 15 минут, у меня для вас плохие новости!

Анонс задачи (1 мин)

#announcement #task_232 #решаем_задачки_дома
Task #232. Счастливый телефонный номер

Даже если вы сделали задачу перебором, не все так плохо! Но задачу можно решить и за O(1)!

Смотрим полный разбор (2 мин)

#task_232 #решаем_задачки_дома
UPD: Разбор

Если не брать в расчет увольнение одного из сотрудников. То можно сделать следующим образом...

Смотрим разбор (1 мин)

#puzzle_84
Анонс #233. Заглавные буквы

Задача с текущего контеста Leetcode!

Анонс задачи (1 мин)

#announcement #task_233 #решаем_задачки_дома
Task #233. Заглавные буквы

Обработка строк с небольшой оптимизацией!

Смотрим разбор (1 мин)

#task_233 #решаем_задачки_дома