Олимпиады
Короткий разбор задач с KBTU Open 2008
3Задачи KBTU Open 2008 (спасибо Герману Ильину за предоставление электронных вариантов условий).
Задача A. Computer Networks
Условие задачи сводится к нахождению минимального реберного разреза между любыми двумя вершинами в графе. Как известно величина реберного разреза между вершинами s и t численно равна величине максимального потока между этими же вершинами. Простой перебор всех пар вершин и нахождение между каждой парой вершин этого самого потока не уложится по времени. Для решения задачи достаточно заметить (доказать, интуитивно предположить
), что перебирать надо не все пары вершин, а только пары (1, i) (естественно, вместо вершины 1 можно взять любую другую).
Задача B. Contest
Динамика по двум параметрам. Пусть d[i, j] – количество различных «ranklist» для i участников распределенных по j местам (не забываем, что несколько участников могут занимать одно место). Тогда при j > i d[i, j] = 0, а в остальных случаях d[i, j] = (d[i - 1, j] + d[i - 1, j - 1]) * j.
Задача C. Counter Strike
Задача на «идею». Переберем все пары оружия и количество патронов, которые мы можем купить. Пусть a1, a2 – «damage» текущих видов оружия, а b1, b2 – соответствующие количества патронов. Надо сосчитать для всех возможных a1, a2, b1, b2, сколько максимум врагов мы сможем уложить. Теперь «идея» (одна из возможных): возьмем какое-то количество выстрелов одного оружия и найдем, сколько необходимо выстрелов другого оружия в дополнение к ним, чтобы уложить одного врага. Уложим таким образом столько врагов, сколько сможем. Для оставшегося количества патронов рекурсивно повторим процедуру. Вот и все (доказательства не спрашивать
).
Задача D. Fatboy
Задача сводилась к нахождению наибольшей общей подпоследовательности трех последовательностей так. Делается стандартной динамикой по трем параметрам: d[i, j, k] – длина наибольшей общей подпоследовательности префиксов строк длиной i, j, k.
Задача E. Super Heroes
В задаче надо было разделить данный граф на две доли так, чтобы в одной доле между каждой парой вершин было ребро (назовем эту долю A), а во второй – ребер не было вообще (B), или сказать, что такое разделение не возможно. Между вершинами из разных долей ребра могут быть. Ключевая идея – вершина с наибольшей степенью лежит в доле A. На основании ее получаем решение: взять вершину с наибольшей степенью, связанную ребрами со всеми вершинами находящимися в доле A, поместить ее в долю A, удалить ее из исходного графа и повторить операцию с оставшимися вершинами. Как только нельзя будет найти вершину, связанную со всеми из доли A, останавливаемся и проверям, есть ли ребра между оставшимися вершинами (которые относятся к доле B).
Задача G. Points
Известно, что удвоенная площадь треугольника, вершины которого имеют целочисленные координаты – целая. Таким образом надо посчитать, сколько получается треугольников с четной площадью. Если расписать площадь как векторное произведение двух векторов, то можно заметить, что ее четность зависит только от четности координат векторов, которые в свою очередь зависят только от четности координат вершин. Поэтому все вершины можно «сложить» в квадрат (0, 0) – (1, 0) – (1, 1) – (0, 1) (при этом несколько вершин могут «сложиться» в одну), а дальше – тривиальный перебор или формула.
Задача H. Sequence
Динамика по N. Пусть f[i, j] – количество хороших последовательностей длины i, оканчивающихся на j, где j – это 0 или 1. Тогда:
f[i, 0] = f[i - 1, 0] + f[i - 1, 1];
f[i, 1] = f[i - 1, 1] + f[i - 1, 0] – f[i - 2, 1] + f[i - 3, 1].
Опять же, здесь не надо хранить само количество, – достаточно его четности.
Обо всем понемногу…
0Давно уже не писал – то не было времени, то желания, но вот решился наконец.
Республиканскую студенческую олимпиаду наша команда (я и Сергей Склонин) все-таки выиграла. В первом туре я был первым, а Сергей – вторым, во-втором – наоборот. За первое командное место нам дали принтер… один
За первое индивидуальное место мне дали бумажку, это подтверждающую. Но в общем все-таки получилось довольно неплохо – олимпиада заставила решить задачу с NEERC, которую в домашних условиях решать было лениво
Также, прошла III-V этапы Республиканской олимпиады школьников по информатике. Задачи, составленные мной, на удивление, оказались не очень простыми, что показали 1-й и, особенно, 2-й тур V этапа, проходившего в Павлодаре. В Павлодаре нас устроили довольно неплохо, хотя с первого взгляда зона отдыха Энергетик походила именно на зону
Главный положительный момент поездки – познакомился с ребятами из КБТУ и научился играть в русский бильярд.
Через день после возвращения из Павлодара состоялся Открытый чемпионат КБТУ, на котором мы участвовали экспериментальной командой – я, Сергей и Жомарт Садыков – золотой призер IOI прошлого года. Не оправдав надежды организаторов, мы решили все задачи за 4 часа и получили вторую порцию пиццы
А на награждении симпатичные девушки из Алси подарили нам ретро-телефоны и свои визитки.

Ретро-телефон от Алси
Республиканская студенческая олимпиада, I тур
0Практически только что закончился I тур олимпиады в КарГТУ. На нее собралось, как сказали на открытии, 27 команд из 20 ВУЗов Казахстана. Сразу хочется отметить плюсы и минусы:
+ приветливые организаторы/дежурные, симпатичные девушки
;
+ быстрая регистрация;
+ удобное расположение компьютерных классов;
+ без проблем получены призы за проходившую незадолго до этого Дистанционную олимпиаду
;
- места в гостинице не были забронированы организаторами, хотя они зачем-то справлялись, будем ли мы жить в предложенной ими же гостинице;
- не продумано питание участников – в предложенном кафе заказ ждали около часа, а потом двум из нас сказали, что того, что они заказали нет, а все остальное закончилось;
- отсутствие пробного тура или хотя бы его подобия – как следствие, даже обещанный Visual C++ 6.0 не работал и пришлось писать на Delphi
;
- неполные условия задач и неправильный тип задач для олимпиады по программированию;
- ручная проверка задач – результаты обещали к 18.00, но, по слухам, в прошлом году проверка затягивалась до ночи.
Вот, пока все.
Результаты III Международной дистанционной олимпиады по информатике
0Сегодня появились долгожданные результаты. Оказалось, что я, как и некто Коробов Алексей из КарГТУ, стали победителями среди студентов, набрав максимальное количество баллов. Теперь надо бы забрать из Караганды заслуженные 6 тысяч тенге
Определены финалисты TCHS 2008
0Список здесь. Поздравляем Армана Есенаманова (army), ставшего единственным представителем Казахстана.
TopCoder SRM 391
0Завершился очередной Single Round Math, проходивший в довольно непривычное время – 8 утра по Алматы. Задачи оказались довольно несложными, что, однако, не помешало в очередной раз слегка тупить. В итоге – 2 задачи, 43-е место и +10 к рейтингу.
P.S. Вот бы такой результат на 3-м и 4-м раунде TCO…
TCO 2008, Online Round 2
0Завершился 2-й раунд TCO 2008, оказавшийся довольно болезненным для многих. В первой залаче идея решения была настолько проста, что даже не верилось, что это правда, и приходилось доказывать. Во второй надо было просто придумать какую-нибудь динамику или критерий сортировки. Ну а в третьей надо было либо опять придумать сортировку, либо применить стандартный для таких задач двоичный поиск + что-то, чего в Казахстане, как выяснилось, никто не знает. В итоге 243 место в дивизионе и -45 к рейтингу
В третий раунд прошли только arti_kz и TokarR.
TCO 2008, Online Round 1
0Завершился первый онлайн-раунд TCO 2008. Опять не обошлось без небольших технических проблем – во время Coding Phase в некоторых комнатах было по 60 человек. В целом получилось довольно удачно, хотя предполагалось немного лучше – 89-е место, +18 к рейтингу. Из 7 участников с Казахстана во второй раунд прошли только arti_kz, TokarR, Tomato, Zhomart.
Петрозаводск, 8-й тур
0Завершился 8-й тур сборов, опять-таки не очень удачный для меня. Перед разбором, после лекции о технологии MapReduce от Google оказалось, что я занял 7-е место в Algorithm Competition Microsoft ImagineCup среди участников сборов, за что получил лицензионный Microsoft Office Professional 2007. Перефразируя слова Дениса Власова можно сказать: «Теперь в Алматы будет один лицензионный офис», причем, у человека, использующего OpenOffice и Linux
.
Петрозаводск, 6-й тур
0Завершился 6-й тур сборов, по совместительству являющийся вторым этапом Кубка Главы Республики Карелия и 7-м этапом IV Открытого Кубка. Победителем V Кубка Главы Республики Карелия, как и ожидалось, стала команда Варшавского университета. Следует отметить также успешное выступление школьника Геннадия Короткевича, который, как мне кажется, делает серьезную заявку на то, чтобы стать, как минимум, вторым Петей Митричевым.