Как стать автором
Обновить
3.87

Спортивное программирование *

Интеллектуальные соревнования

Сначала показывать
Порог рейтинга
Уровень сложности

VK Cup: место встречи чемпионов

Время на прочтение2 мин
Количество просмотров2.9K

Привет, Хабр! Я к вам с хорошими новостями: 28 ноября стартовала регистрация на чемпионат VK Cup! В этом году он посвящён только разработке (но не расстраивайтесь — дизайнерский трек мы перенесли в программу чемпионата VK Design Cup).

Классическое олимпиадное программирование пройдёт на площадке Codeforces — регистрируйтесь. К остальным трекам – мобильной разработке, машинному обучению и разработке на Go и JavaScript можно присоединиться на платформе All Cups.

Все полезные подробности о чемпионате — уже восьмом — читайте под катом.

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии2

Как мы заняли первое место в хакатоне ВК «Машинное обучение на графах», где не было графов

Время на прочтение7 мин
Количество просмотров4.4K

В сентябре 2022 проходил хакатон «Машинное обучение на графах» от компании ВК на платформе «Цифровой прорыв». В хакатоне участвовала команда Лаборатории машинного обучения Альфа-Банка: Александр Сенин, Георгий Смирнов и Валерий Смирнов.

Мы заняли 1 место в хакатоне, далее подробно расскажем, как нам удалось победить.

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии4

Оптимизируем дерево отрезков, делаем из него куст o_O

Время на прочтение5 мин
Количество просмотров3.6K

Многие знакомы с алгоритмами дерева отрезков и корневой декомпозиции. Однако, не многие задаются вопросом о том, почему они устроены именно так, как они устроены :), и нельзя ли немного изменив их получить выигрыш во времени работы или затрачиваемой памяти. Одно из таких изменений я бы и хотел рассмотреть в этой статье, ведь я сам только недавно задумался об этом, хотя знаком с этими алгоритмами уже более 4 лет.

Математика говорит, что это невозможно, но нам всё равно!

Расширять сознание
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Эвристический подход для теста Поиск частоты заказов

Время на прочтение2 мин
Количество просмотров1.4K

В статье Пример как писать тесты в Yandex.Contest были даны рекомендации по для успешного прохождения тестов компании Яндекс. Один из тестов - поиск наибольшего числа заказов для заданной площади прямоугольника, мы решали простым перебором всех заказов, что увеличивает сложность поиска решения в геометрической прогрессии. Но есть более изящное решение. Однако такие решения приходят не сразу - задача прорабатывается на подкорке некоторое время (несколько дней), а потом вдруг, когда едешь в метро или гуляешь с собакой, бац и решение готово почти мгновенно.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

Истории

Как я участвовал в соревновании по машинному обучению и занял второе место (и почему не первое)

Время на прочтение6 мин
Количество просмотров5.3K

Привет, меня зовут Данил Астафуров, я стажёр в команде лаборатории машинного обучения в Альфа-Банке, работаю над кредитным скорингом. В этом году я поучаствовал в соревнованиях «Цифровой прорыв: сезон искусственного интеллекта», на котором занял второе место. Это единственный технологический проект от АНО «Россия — страна возможностей». 

Соревнование длилось месяц и я был на первом месте с первого решения. Но за неделю до конца соревнования участников стал резко больше и меня обогнали. Отрыв от второго места был почти 0.1 (хотя там можно было скрыть лучший результат). Занятость стажера не давала отвлекаться, поэтому было решено, что пусть идёт всё своим чередом. Сейчас, спустя время, я могу разобрать своё решение и понять, как всё же можно было добраться до первого места.

Читать далее
Всего голосов 21: ↑20 и ↓1+19
Комментарии3

Пример как писать тесты в Yandex.Contest

Время на прочтение3 мин
Количество просмотров5.5K

Делюсь своим опытом как проходить тесты в Яндекс Контест. Уже после прохождения теста, который я провалил, решил повторить чисто для проверки сколько времени уйдет на написание кода, если уже знаешь что писать.

Читать далее
Рейтинг0
Комментарии2

Суффиксное дерево на python

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров11K

Суффиксное дерево (Suffix Tree, ST) – это структура данных, которая позволяет "проиндексировать" строку за линейное время от её длины, чтобы потом быстро находить подстроки (за время О(длина искомой подстроки)).

Тема построения Suffix Tree и его применения хорошо раскрыта в Интернет (википедия, статья на хабр про алгоритм Вейнера, язык Си, и статья на хабр про алгоритм Укконена). Но всегда есть соблазн поучаствовать в соревновании "написать проще и яснее", хотя шансов мало. Тем не менее, рискну.

Несмотря на сложность, алгоритм построения ST умещается в 35 строк на python (см. ниже метод _build_tree). Их буквально можно выучить и воспроизводить по памяти как некое произведение искусства, как воплощенный в набор символов труд человеческой мысли, причём не одного человека, и первые из них точно гении. :) Есть соблазн, всматриваясь в код, прикоснуться к великому и чему-то научиться.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

IT-олимпиада в ВСК становится традицией

Время на прочтение8 мин
Количество просмотров2.3K

Год назад ВСК получила незабываемый, позитивный опыт проведения олимпиады по программированию внутри своей компании. Известный факт: не все начинания, даже успешные, в итоге имеют свое продолжение. Но, благодаря энергии и настойчивости нашего DevRel и неравнодушных коллег из разных подразделений ВСК, в июле состоялась 2-я IT-олимпиада ВСК, которая, уже традиционно, объединила в online-режиме площадки 3-х регионов (Москва, Волгоград и Томск).

В этот раз наши аппетиты выросли, что было заметно по расширению границ мероприятия:

1. В отличие от 2021 года, кроме соревнований по программированию, мы провели состязания в навыках среди аналитиков и администраторов серверов приложений.

2. Расширился круг подразделений компании, сотрудники которых решились испытать свои силы: кроме ИT-блока, участие приняли блок информационной безопасности и даже 2 бизнес-подразделения.

3. Среди участников были и внешние – сотрудники крупного партнера нашей компании.

4. Общее количество участников увеличилось почти в 2 раза.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Письмо ценой катастрофы: расследуем атаку на The Standoff, используя продукты Positive Technologies

Время на прочтение16 мин
Количество просмотров5.8K

Привет! В мае прошел очередной, уже 11-й, PHDays, а вместе с ним и The Standoff, и мы, как обычно, не остались без кейсов интересных атак.

В этот раз мы решили не описывать отдельные техники и тактики по матрице MITRE ATT&CK, ведь ни одна атака не возникает на пустом месте: всегда есть конкретный вектор проникновения в систему, путь продвижения по инфраструктуре и в конечном счете реализованное недопустимое событие. Предлагаем сосредоточиться на этом, так что приготовьтесь к полноценному расследованию!

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Интерактивный учебник для подготовки к алгоритмической секции собеседования

Время на прочтение2 мин
Количество просмотров6.8K

Собеседования в крупные IT-компании почти всегда содержат алгоритмическую секцию — даже если вы собеседуетесь на позицию, в работе на которой алгоритмы возникать вряд ли будут. Ниже мы приводим пример задачи, с которой вы можете столкнуться на вашем следующем интервью. Мы расскажем, как эта задача решается, но мы настоятельно рекомендуем вам читать решение только после того, как вы попробуете решить задачу самостоятельно: во-первых, это отличная тренировка; во-вторых, вы лучше запомните решение, если придумаете его сами (не отказывайте себе в этом удовольствии!); в-третьих, даже если вы подумаете над задачей, но не решите её, время не будет потеряно: прочитав потом решение, вы лучше его поймёте и оцените его красоту.

Итак, вот сама задача
Всего голосов 10: ↑8 и ↓2+6
Комментарии18

Спортивное программирование: не все так просто, как кажется

Время на прочтение4 мин
Количество просмотров13K

Меня зовут Абай Баймуканов, я – разработчик-алгоритмист международной IT-компании Relog. Уже несколько лет увлекаюсь олимпиадными программированием, поэтому в этой статье хотел бы поделиться своим видением по этому поводу.

Быть олимпиадником по спортивному программированию довольно весело и интересно. Но быть жюри и составителем задач для самих олимпиад – достаточно ответственное и не менее интересное дело. Спортивное программирование - это те же математические задачки на логику, которые всего то нужно решить. Но программирование, в отличие от любого другого предмета, уникально тем, что решение нужно еще и реализовать в виде компьютерной программы.

Здесь есть свой нюанс: программа может работать настолько долго, сколько не существует даже вселенная, а может сработать за долю секунды. Причем в обоих случаях результат будет один и тот же. Любой олимпиадник стремится к тому, чтобы его программа была как можно эффективнее. Для этого существуют алгоритмы и структуры данных - методы, позволяющие сделать определенные программы более эффективными с точки зрения необходимого времени или памяти компьютера.

Спектр сложности у задач по спортивному программированию достаточно широкий: от задач для новичков до задач мирового уровня для вундеркиндов. Большинство соревнований проводится практически одном и том же формате, то есть дается несколько задач, на их решение 5 часов и за это время нужно решить как можно больше.

На школьных олимпиадах обычно за каждую задачу можно получить от 0 до 100 баллов и общим результатом будет суммарный балл за все задачи, у студентов в результат идет просто количество решенных задач, а если есть участники, решившие одно и то же количество задач, то они группируют по убыванию штрафа. Чем дольше решаешь задачу или чем больше на них нужно попыток решить, тем больше штрафов за нее получишь.

Читать далее
Всего голосов 18: ↑11 и ↓7+4
Комментарии21

Калькулятор инвестиций и скринер ценных бумаг: как мы проводили свой первый хакатон BCS Coding Days

Время на прочтение6 мин
Количество просмотров1.3K

Привет! Я Люба Давыдова из компании БКС. Занимаюсь развитием ИТ бренда в компании. Расскажу об одном из наших последних мероприятий.

В декабре мы с партнерами из «Сколково» провели свое первое онлайн-соревнование для разработчиков. Мы решили поделиться опытом организации мероприятия и примерами тематических задач.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

The Standoff 2021, ноябрь edition. Что не проскочило мимо песочницы PT Sandbox

Время на прочтение11 мин
Количество просмотров3K

С 14 по 16 ноября 2021 года на киберполигоне The Standoff происходило третье противостояние между атакующими и защитниками. Сражения прошли в стремительно развивающемся городе-государстве F. Реализовывать недопустимые события ринулись десять суперскилованных команд атакующих, а на бастионах защиты их встречали пять команд защитников. Как обычно, сторонним пристальным наблюдателем всего происходящего на киберарене был security operations center (SOC).

Несколько команд экспертного центра безопасности Positive Technologies — PT Expert Security Center (PT ESC), в том числе и наш отдел обнаружения вредоносного ПО — не смогли удержаться и таки засунули свои носы сенсоры в гущу событий. С помощью песочницы PT Sandbox мы старательно изучали все файлы, которые влетали в инфраструктуру противостояния, и, вооружившись различными технологиями, искали вредоносный код. По традиции знакомим вас с результатами анализа. А вспомнить, как это было полгода назад, вам поможет прошлый рассказ.

Читать
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Ближайшие события

Как мы в ВСК провели олимпиаду по программированию для сотрудников

Время на прочтение10 мин
Количество просмотров3.7K
image

Привет, Хабр! 11 июня мы в ВСК провели первую олимпиаду по программированию в Москве, Волгограде и Томске. Поучаствовать мог каждый сотрудник с базовыми навыками программирования. Среди участников были не только профессиональные программисты, но и руководители, аналитики, администраторы.

В головах сотрудников ИТ-подразделения скрыт огромный природный интеллект и потенциал. И нам важно было его раскрыть, важно сделать работу айтишника интересной, интенсивной и продуктивной. Олимпиада – отличный формат! Он позволяет вспомнить участие в университетских и школьных олимпиадах, почувствовать вкус и ощутить эмоции от ожидания оценок.

В этой статье мы

  • расскажем, как настроить «Яндекс.Контест»;
  • приведём задачи;
  • покажем, во сколько нам обошлась олимпиада (сразу признаемся: сумма вышла настолько смехотворной, что мы спрячем её под кат).

Пост будет интересен не только любителям задач, но и всем желающим организовать такую же олимпиаду у себя в команде.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии9

На The Standoff будут взламывать NFT-картины

Время на прочтение2 мин
Количество просмотров1.7K

15–16 ноября в рамках крупнейшего российского киберполигона пройдет конкурс The Standoff Digital Art, участникам которого предложат взломать цифровые картины современных представителей российского диджитал-арта: Desinfo, Meta Rite, Артём Ткач, volv_victory, Anomalit Kate и Loit.

Каждая картина представлена в виде уникального NFT-токена, который предстоит испытать на прочность исследователям безопасности со всего мира. Чтобы завладеть картиной, им придется найти уязвимости в смарт-контрактах путем анализа исходного кода. Те, кто первыми успешно реализуют атаку, получат 🎁🎉 ценные призы от компаний Positive Technologies и ГК Innostage.

Конкурс пройдет в онлайн-формате. Присоединяйтесь к трансляции на сайте standoff365.com, чтобы увидеть это.

UPD: разбор заданий с конкурса уже готов! Читайте его здесь.

Подробности
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Задачи с чемпионата мира по программированию ICPC 2021

Время на прочтение3 мин
Количество просмотров19K
В 2021 году финал чемпионата мира по программированию среди университетских команд ICPC (International Collegiate Programming Contest) прошел в Москве в начале октября.

Участникам нужно было решить 15 задач на трёх компьютерах (раньше было меньше задач и 1 компьютер).

image Золото
1) ННГУ (Нижний Новгород)
2) Seoul National University (Корея)
3) ИТМО (Санкт-Петербург)
4) МФТИ (Москва)

Серебро
5) University of Wroclaw (Польша)
6) University of Cambridge (США)
7) Беларусский государственный университет (Минск)
8) University of Bucharest (Румыния)

Бронза
9) Massachusetts Institute of Technology (США)
10) ХНУРЭ (Харьков)
11) University of Illinois at Urbana-Champaign (США)
12) НИУ ВШЭ (Москва)

13) СПбГУ (Санкт-Петербург)
14) University of Warsaw (Польша)
15) Utrecht-Leiden University (Нидерланды)
16) Harvard University (США)
17) University of Central Florida (США)
18) National Taiwan University (Тайвань)
19) Питерский филиал ВШЭ (Санкт-Петербург)
20) МГУ (Москва)
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии4

RustCon Contest 2021 — соревнование для тех, кто пишет на Rust и тех, кто только к нему подступается

Время на прочтение3 мин
Количество просмотров3.9K

В прошлой статье мы писали, что давно пора снова собрать русскоязычное сообщество rust-разработчиков, и поэтому в декабре проведем RustCon Russia. Так вот, при подготовке конференции мы поняли, что есть два разных сегмента тех, кому интересен Rust. Первые — это те, кто уже пишут на нем. Вторые - те, кто только начал изучать или подумывает об этом. Питонисты, плюсеры, рубисты - все, кто понял, что у раста есть очень крутые преимущества, и пора бы изучить их подробнее.

В-общем, анонсируем RustCon Contest — индивидуальные соревнования по программированию на rust, где опытные разработчики могут внести вклад в открытые rust-проекты, а начинающие - попробовать rust на вкус на простых и чуть более сложных задачках. И те, и другие могут выиграть билет на RustCon, получить фирменный мерч или приличную скидку. Подробности под катом.

Читать далее
Всего голосов 25: ↑23 и ↓2+21
Комментарии4

Спортивное программирование — социальный лифт в IT. Как его использовать школьнику, родителям школьника и разработчику?

Время на прочтение12 мин
Количество просмотров12K

С какого возраста можно обучать ребенка программированию и какой язык лучше выбрать? Как попасть на самые крутые IT-направления в лучшие вузы? Становятся ли дети разработчиков разработчиками? Как попасть на стажировку в Яндекс или на работу в Google?

Обо всем этом нам рассказывает Михаил Рубинчик — лидер и главный тренер по спортивному программированию в Уральском федеральном университете и основатель онлайн-школы по спортивному программированию SPGuide. Подробности под катом

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии30

Как запустить 100+ компиляторов и выстоять. Опыт Яндекс.Контеста

Время на прочтение14 мин
Количество просмотров7.4K
Привет, это снова Павел Тыквин, разработчик Яндекс.Контеста. Контест больше всего известен как площадка для соревнований по программированию: прямо сейчас идёт квалификационный этап чемпионата Yandex Cup. Я уже писал на Хабре о том, как мы решаем одну из стоящих перед нами проблем: выравниваем время исполнения кода. Ну а в этой статье я приоткрою детали процесса проверки, расскажу, через какие этапы проходит код участников и какими методами мы оптимизируем этот процесс, а также — как мы добавили возможность решать задачи на том языке, с которым участник уже знаком (вне зависимости от способов тестирования внутри платформы).

Как происходит проверка решения


Возьмём для примера простейшую задачу: вам заданы два целых числа a и b, выведите a+b.

Допустим, решение будет таким:

source.cpp:
#include <bits/stdc++.h>

using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
}

Как можно проверить это решение вручную без участия дополнительных сервисов и библиотек?
Например, так
Всего голосов 24: ↑24 и ↓0+24
Комментарии6

Конкурс не для всех

Время на прочтение1 мин
Количество просмотров1.4K

Есть задача "Двенадцатая степень":

Перед Васей написаны целые числа от 0 до 2021. Он произвольно разбивает их на пары, внутри каждой пары суммирует, а все полученные суммы перемножает. Может ли у него получиться двенадцатая степень натурального числа?

Конкурс!

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

Порог входа в конкурс (по сложности) потихоньку растет, но до сих пор не стал запредельным. Еще не поздно решить задачу, прочитать условия конкурса, начать участвовать — и победить. Успехов :)

Читать далее
Всего голосов 7: ↑2 и ↓5-3
Комментарии7