Рубрика «олимпиадное программирование»

Что забыли Графы в программировании?

Для начала уточню: граф Монте‑Кристо и прочие персонажи тут ни при чём. Речь пойдёт о математических графах — структуре, которая помогает решать массу задач в программировании, математике и олимпиадной информатике.

Графы — это способ представить объекты и связи между ними. Они идеально подходят для поиска маршрутов, анализа сетей и моделирования любых систем, где важны отношения между элементами.

Впервые я встретил графы примерно в четвёртом классе, но начал активно использовать, только когда начал заниматься олимпиадным программированием.

Читать полностью »

Здравствуйте, друзья, меня зовут Ерохин Кирилл, я программист‑любитель, и в этом сентябре я втихаря провёл соревнование по алгоритмическому программированию на C/C++ под платформу «Эльбрус» (e2k), собрав 31 участника со всей России, результатами которого я решил поделиться с вами. А Хабр мне в этом поможет, ему не впервой.

Оглавление:

В этой статье я расскажу о стеке и задачах в которых он применяется. Включая задачу с заключительного этапа Всероссийской олимпиады школьников по информатике 2025 года.

Что такое стек?

Стек (англ. stack — "стопка") — это структура данных, работающая по принципу LIFO (Last In, First Out) — "последним пришёл, первым ушёл". Реализация стека приведена во многих языках программирования.

Основные операции со стеком:

  1. push(x) — добавить элемент x на вершину стека.

  2. pop() — удалить верхний элемент.

  3. top() — возвращает верхний элемент без удаления.

    Читать полностью »

Некоторое время назад я объявил челлендж имени Винтика и Шпунтика. Суть его — в подсчете числа решений задачки, почерпнутой из математической олимпиады для 7 класса. Изначально я рассчитывал на то, что лучшие умы Хабра разберутся с задачей за месяц. Однако с тех пор прошло 10, и не сказать, чтобы обозначились какие-то серьезные прорывы. Но некоторые новые идеи появились. Поэтому сегодня мы подведем промежуточные итоги нашего челленджа, а также разберем некоторые подходы, которые позволяют двигаться вперед в нашем нелегком деле.

Для начала снова приведу условия задачи.

Читать полностью »

Если вы заглянете на Википедию, то узнаете, что первая в СССР олимпиада по программированию состоялась в 1989 году в Свердловске. Но так вышло, что мне довелось поучаствовать в самой-самой первой в СССР олимпиаде по программированию.

Произошло это годом раньше, в 1988 году, в Риге, где проходила ежегодная всесоюзная математическая олимпиада. Читать полностью »

Вчера мне пришло письмо от десятиклассницы из Сибири, которая хочет стать разработчицей микропроцессоров. Она уже получила некоторый результат в этой области — добавила инструкцию умножения в простейший процессор schoolMIPS, синтезировала его для ПЛИС Intel FPGA MAX10, определила максимальную частоту и повышение производительности простых программ. Все это она сначала делала в деревне Бурмистрово Новосибирской Области, а потом на конференции в Томске.

Теперь Даша Криворучко (так зовут десятиклассницу) переехала жить в московский интернат и спрашивает у меня, чего бы ей еще спроектировать. Я думаю, что на этом этапе карьеры ей стоит спроектировать аппаратный ускоритель нейросетей на основе систолического массива для умножения матриц. Использовать язык описания аппаратуры Verilog и ПЛИС Intel FPGA, но не дешевенький MAX10, а что-нибудь подороже, чтобы вместить большой систолический массив.

После этого сравнить производительность аппаратного решения с программой, работающей на процессоре schoolMIPS, а также с программой на Питоне, работающей на десктопном компьютере. В качестве тестового примера использовать распознавание цифр с небольшой матрицы.

Десятиклассница из Сибири хочет стать проектировщицей процессоров. Почему бы ей не сделать нейроускоритель на ПЛИС? - 1
Читать полностью »

В Университете Иннополис завершилась Европейская олимпиада по информатике, за победу в которой боролись 80 участников (возрастом до 15 лет) из 21 страны: Армении, Азербайджана, Бельгии, Боснии и Герцеговины, Болгарии, Венгрии, Греции, Кипра, Латвии, Литвы, Македонии, Молдовы, Польши, Румынии, России, Сербии, Словении, Финляндии, Франции, Хорватии и Эстонии.

Российские олимпиадники взяли больше всех золотых медалей и заняли первую строчку в общекомандном зачёте. От каждой страны выступали команды по 4 человека. Россия как страна-хозяйка получила право включить в соревнование дополнительную неофициальную команду.

Читать полностью »

image

Привет Хабр, сегодня я расскажу о том, как я проходил тестовое задание на летнюю стажировку в Яндекс. Эта публикация будет полезна начинающим разработчикам, любителям олимпиадного программирования, тем кто неравнодушен к С++ и Java, или просто хочет прочесть интересную статью после трудного рабочего дня.

Чего ожидать от этой статьи?

  • Introduction, о том что такое стажировки в Яндкесе, как и когда на них подать
  • Мотивация к написанию данной статьи
  • Примеры задач, моё решение и краткий разбор (Можно смело пропустить первые два пункта, и начинать именно отсюда)

Introduction

Для тех кто мало знаком с системой отбора на стажировку в Яндексе расскажу вкратце. На сайте яндекса, за несколько месяцев до лета объявляется оплачиваемая вакансия для начинающих разработчиков, в том отделе, в котором вы бы хотели работать (i.e. Яндекс.Диск, Яндекс.Алиса). По ссылке, нужно заполнить форму, о том где Вы учитесь, чем занимаетесь, какой был опыт работы, о чем писали дипломную работы итп. После заполнения формы Вам на почту присылают тестовое задание, на выполнение которого у Вас есть 6 часов, в любой день в течении недели с момента, когда Вы получили это письмо.
Читать полностью »

Кажется, у компании Crossover становится традицией анонсировать свои карьерные турниры, рассказывая о людях, уже работающих по специализации, на которую пойдёт отбор. Но сегодняшний случай особенный: хотя «примерка» на роль Chief Software Architect 7 апреля проходит в Москве, наш «Chief Software Architect дня» живёт даже не в России, а в соседней для дефолтной хабранации республике. Видимо, поэтому Crossover предложил мне взять у него интервью — может, они надеялись на какую-то особую белорусскую перспективу в разговоре двух белорусов, двух минчан и двух фрилансеров?

Впрочем, это сейчас Сергей rserge Рогач живёт и работает в Минске. Будущий Chief Software Architect компании родился в городке-десятитысячнике Глубокое Витебской губернии, в подбрюшье Браславских озёр — и эта череда топонимов словно сама уносит дальше, куда-то в сторону леса Фангорн, лежащего в отрогах Мглистых гор…

image
Поднимите руки, кто на Браславские озёра хочет больше, чем в Чикаго?

…только Сергей после девятого класса поступил в лицей при БГУ — одну из самых престижных школ Беларуси при главном университете страны. Учиться там в 2001–2003 годах было никому не скучно: аббревиатура БГУ грохотала как название одной из самых смешных команд КВН в истории, а Сергей два года подряд попадал в четвёрку старшеклассников, представлявших Беларусь на международной олимпиаде по программированию.
Читать полностью »

Чемпионы мира — о спортивном программировании - 1

DataArt давно дружит с командой ИТМО по спортивному программированию и помогает ей. Этим летом в гости в наш петербургский центр разработки пришли Илья Збань, Иван Белоногов и Владимир Смыкалов. Чемпионы мира 2017 года рассказали о том, как именно программисты соревнуются между собой, о тренировочных сборах, любимых задачах и сильнейших соперниках.

Олимпиада по программированию

Главное соревнование программистов — международная студенческая олимпиада под эгидой ACM (ACM-ICPC, или просто ICPC) — проходит с 1970-х, а в виде, близком к сегодняшнему, оформилась в 1989 году. Олимпиада предназначена для студентов и аспирантов, за редким исключением к соревнованиям не допускают программистов старше 24-х лет. К тому же, испытывать силы в финале можно только дважды, а в региональных отборах разрешается участвовать всего пять раз. На ранних этапах, проходящих по всему миру, соревнуются тысячи команд. Около сотни лучших доходят до финала.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js