Competitive Programmer's Handbook (2018) [pdf] 🔥 Горячее
Книга «Competitive Programmer’s Handbook» Антти Лааксонена — это практическое руководство по алгоритмам и структурам данных, ориентированное на подготовку к программным соревнованиям. Оно охватывает основные темы: сложность алгоритмов, сортировку, поиск, динамические массивы, множества, словари, итераторы, полный перебор, жадные алгоритмы и динамическое программирование. Особое внимание уделяется реализации на C++ и эффективному написанию кода под ограничениями времени и памяти.
В разделе о сложности алгоритмов объясняются правила оценки времени работы, классы сложности (O, Ω, Θ) и методы оценки эффективности. Приводятся примеры, такие как максимальная сумма подмассива (алгоритм Кадане), демонстрирующие линейные решения. В части про сортировку рассматриваются теоретические основы, реализация в C++ через std::sort и применение бинарного поиска. Описываются структуры данных: векторы, множества (set, multiset), словари (map, multimap), их итераторы и практическое использование.
Раздел о полном переборе включает генерацию подмножеств, перестановок и использование backtracking с эвристиками обрезки поиска. Метод «встреча посередине» представлен как способ снизить экспоненциальную сложность до приемлемой для задач с n ≈ 40. Жадные алгоритмы иллюстрируются на примерах монетной задачи, планирования задач и минимизации сумм, с акцентом на условия, при которых жадность оптимальна. Динамическое программирование раскрывается через классические задачи: монеты, наибольшая возрастающая подпоследовательность, пути в сетке и рюкзак, с акцентом на определение состояний и переходов. В приложении даны ссылки на ключевые исследования и ресурсы, включая работы по алгоритмам Прима, Шарара и Тарьяна, а также полезные платформы вроде USACO и Szkopuł.
Комментарии (82)
Обсуждение подчеркивает, что книга развивает алгоритмическое мышление как «умственную гимнастику», а не как прямой путь к успеху на собеседованиях. Она ценна как справочник по алгоритмам и структурам данных, полезный для понимания CS-основ, включая трейды производительности и паттерны памяти, и помогает преодолеть пробелы в образовании, особенно у тех, кто пришёл из смежных областей. Практика competitive programming улучшает навыки написания кода с меньшим количеством багов, ускоряет реализацию решений и воспринимается как способ «детоксикации» от чрезмерного использования LLM, возвращая глубокое мышление и ощущение личного достижения. Книга Лааксонена считается более глубокой и менее ориентированной на собеседования, чем LeetCode, что привлекает тех, кто ищет истинное понимание, а не подготовку к тестам. Опытные участники советуют не воспринимать её как руководство для собеседований, а как инструмент для долгосрочного роста. Она остаётся актуальной спустя 6 лет после публикации, поскольку фундаментальные алгоритмы и структуры данных не изменились. Задачи с CSES.fi, сопровождающие книгу, структурированы и включают проверку решений, что делает их ценным ресурсом для практики. Книга помогает выявлять «gotchas» в программировании — вопросы памяти, сложности и оптимизации — применимые независимо от языка. Несмотря на рост AI, многие считают, что изучение алгоритмов важно для формирования мощного способа мышления, даже если код пишут модели. Споры: некоторые считают LeetCode нерелевантным фильтром для найма, так как реальная работа редко требует задач в стиле соревнований; другие утверждают, что AI делает ручное кодирование устаревшим, но опыт критически важен для эффективного управления LLM в разработке. Книга более сухая и лаконичная, чем современные учебники, но это её сила — ориентирована на быстрое применение, а не на чтение для удовольствия. Некоторые рекомендуют альтернативы, например «Algorithmic Thinking» Зингаро, как более доступные для новичков, сохраняя плотность материала.
Advent of Code 2025: Number of puzzles reduce from 25 to 12 for the first time 🔥 Горячее 💬 Длинная дискуссия
Advent of Code 2025 — это календарь программистических головоломок на каждый день декабря, доступных для решения на любом языке программирования. Созданный Эриком Вастлом, этот проект подходит для любого уровня подготовки — от новичков до опытных разработчиков. Участники используют его для подготовки к собеседованиям, обучения в компаниях, университетских курсов или просто для практики. Не требуется глубоких знаний компьютерных наук — достаточно базовых навыков программирования и решения задач. Все задачи можно решить на десятилетнем оборудовании за не более 15 секунд.
Проект поддерживается через AoC++ и социальные сети. Если вы застряли, автор советует проверять решения на примерах, создавать тестовые случаи и обращаться за помощью в subreddit. В разделе FAQ освещены вопросы аутентификации через OAuth, сложности задач (которые обычно возрастают со временем), разблокировки задач в полночь по EST, а также возможность участия в соревнованиях через приватные рейтинги.
Комментарии (191)
- Сокращение до 12 дней вместо 25 вызвало бурную дискуссию: часть сообщества считает, что это разрушает саму суть "Advent of Code", в то время как другие отмечают, что это снизит нагрузку на автора и позволит ему продолжать проект.
- Пользователи отмечают, что сокращение до 12 дней делает невозможным привычное соревнование за лидербордом, и что это может оттолкнуть некоторых участников.
- Некоторые участники выразили обеспокоенность тем, что сокращение может повлиять на качество головоломок, так как автор будет иметь меньше времени на их разработку.
- Некоторые участники предложили альтернативы, такие как выпуск головоломки каждые два дня вместо ежедневного выпуска, что позволило бы сохранить привычный формат мероприятия.
- Участники также обсудили, что сокращение до 12 дней может повлиять на их собственные планы на декабрь, и что они могут не успеть решить головоломки до Рождества, что для них является важным элементом мотивации.
DeepMind and OpenAI win gold at ICPC 💬 Длинная дискуссия
OpenAI и DeepMind рады объявить/поделиться — Codeforces
Codeforces — платформа для соревнований по программированию.
Навигация:
- Главная
- Топ
- Каталог
- Контесты
- Тренировки
- Задачи
- Группы
- Рейтинг
- Обучение
- API
- Календарь
- Помощь
Ближайший контест:
Codeforces Global Round 29 (Div. 1 + Div. 2) через 3 дня. Регистрация открыта.
Топ рейтинга:
- jiangly (3914)
- Kevin114514 (3755)
- orzdevinwang (3670)
- tourist (3619)
- ecnerwala (3590)
Топ авторов:
- errorgorn (170)
- Qingyu (162)
- adamant (158)
Последние действия:
- Обсуждение редакции раундов
- Вопросы о повышении рейтинга
- Обновления условий задач
- Обсуждение возможных нарушений
Комментарии (211)
- OpenAI и DeepMind достигли высоких результатов в ICPC (12/12 и 10/12 задач соответственно), превзойдя лучшие человеческие команды.
- Мнения разделились: одни считают результат прорывом, другие — следствием нечестных преимуществ ИИ (огромные вычислительные мощности и многократные попытки).
- Критики указывают на отсутствие прозрачности: неизвестны затраты на вычисления, энергопотребление и степень стороннего контроля.
- Подчеркивается фундаментальное отличие соревнований для людей (ограничения по времени, один компьютер на команду) и условий для ИИ.
- Отмечается, что успех ИИ в узких, четко определенных задачах не обязательно переносится на реальную инженерию или научные прорывы.
- Обсуждается растущий разрыв между возможностями корпоративных моделей и тем, что доступно обычным пользователям.
- Результат заставляет пересмотреть assumptions о текущих возможностях LLM и их будущей роли в решении сложных задач.