Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 14 лет назад, По-русски

Первое информационное сообщение


Общая информация


Саратовский государственный университет со 2 по 12 августа 2010 года проводит международную летнюю студенческую школу по программированию.

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

Школа пройдет в живописном месте, на одной из саратовских баз отдыха на берегу Волги. Участники будут расселены в уютных номерах по 2-4 человека и обеспечены трехразовым питанием. На территории базы имеется собственный пляж и спортивные площадки.

В программе школы запланированы лекции тренерского состава Саратовского государственного университета, совместные тренировки, разборы задач и тематические семинары. Учебная программа рассчитана на студентов младших курсов, которые хотят достичь значительных успехов на соревнованиях по программированию.

Организационный сбор составляет 15000 рублей на одного участника. Кроме того, каждая команда или индивидуальный участник должны привезти с собой ноутбук (с поддержкой WI-FI).

Заинтересованным участникам и командам необходимо пройти предварительную регистрацию на сайте http://acm.sgu.ru/sazanka-2010/ до 10 июня 2010 года. Не откладывайте регистрацию, так как количество мест ограничено.

Дополнительную информацию можно получить по телефону 88452522711 или по электронной почте mirzayanovmr[символ с кодом 64]gmail.com.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Для тех кто еще не знает, сообщу, что IPSC (Internet Problem Solving Contest) это ежегодное соревнование, которое проводиться братским народом - словаками. Интересно оно в первую очередь необычными правилами и задачами. В этом году соревнование будет проходить 6 июня, а регистрация уже открыта.

Соревнование длится 5 часов и на нем будет предложено 6-20 задач. Например, в прошлом году их было 13. По каждой задаче вы можете скачать два набора входных данных: упрощенный и усложненный. Отсылать на проверку надо только результаты (примерно как в Google Code Jam), за неправильные попытки начисляется icpc-like penalty (для простого теста 10 минут штраф за попытку, для сложного - 20). Бывает, что они дают не решаемую в общем случае задачу, но тесты содержат входные данные специального вида, то есть, посмотрев на них внимательно можно понять, что для данного вида тестов решение существует. Кроме того на этом соревновании обязательно бывают задачи-угадалки, в которые практически невозможно сдать с первой попытки, но каждая попытка дает новую информацию. Задача состоит в том, чтобы выбрать правильную стратегию, получив ответ за наименьшее число попыток. Отметим, что существует ограничение на число попыток на каждый тест равное 10. Настоятельно рекомендую написать пробный тур, чтобы ознакомиться с их системой сдачи решений.

В конце отмечу, что этот контест (2000 года) команда Saratov SU 3 (Эльтерман, Лазарев, Мирзаянов) считает своим днем рождения. Дважды мы делали себе подарок, одерживая победу на нем: в 2003 и 2004 годах :)

Результаты подводятся по двум дивизионам: школьный дивизион (детский) и открытый (взрослый). На настоящий момент чемпионом мира по версии IPSC является команда наших соотечественников Ural Fanclub of Ksenia Sobchak

Полный текст и комментарии »

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски

Надо сказать, что участвуя в прошлом году в TopCoder Open и Google Code Jam, я чувствовал себя значительно более уверенно, чем в этом. Дело в том, что последний год я совсем мало решал задач и участвовал в каких-либо контестах. Это разумеется отразилось и на результатах. Но как бы то ни было я собираюсь участвовать этих соревнованиях этого года и буду бороться до последнего (надеюсь, раунда).

Только что закончился Google Code Jam 2010 Round 1B, который я слил препозорнейшим образом, о чем сейчас и поведаю. Сразу отмечу, что задачи мне очень понравились, отличный отборочный раунд.

Результаты здесь


А вот и разборы задач.

A. File Fix-it

Я решал эту задачу явно строя дерево директорий. Для этого я каждый путь превратил в vector<string>, разделяя его символом слэш. Вот такая функция добавляла в дерево путь d[idx]->d[idx + 1]->…->d[d.size()-1] из вершины tree дерева. Так же она увеличивает глобальный счетчик z созданных узлов.

void put(const vector& d, int idx, int tree)
{
	if (idx >= d.size())
    	return;

    if (f[tree].inner.count(d[idx]) == 0)
    {
	    z++;
    	f[tree].inner[d[idx]] = p++;
    }

    put(d, idx + 1, f[tree].inner[d[idx]]);
}

Тогда задача сводиться к добавлению в дерево всех существующих путей, а затем (после z:  = 0) добавлению тех директорий, которые надо создать. Значение z после этого (т.е. количество созданных узлов на второй фазе) будет равно ответу на задачу.

B. Picking Up Chicks

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

После того как я понял условие правильно, то решил задачу следующим образом. Для каждой курочки я определил добежит ли она до финиша за время t если ей никто не будет мешать. Если таких курочек меньше k, то ответ IMPOSSIBLE. Если таких курочек равно 0, то ответ 0. А вот если таких курочек больше или равно k и k положительно, то выбираем k ближайших к финишу курочек и будем именно их использовать для составления ответа. Пусть это множество A. Для каждой из этих курочек посмотрим на такие, которые находятся правее ее, но не являются выбранными. Такие курочки не успевают добежать до финиша (так как не выбраны), и поэтому в них нельзя упираться. Значит всех их надо проскочить. Таким образом, ответ это сумма для каждого a из A количества курочек впереди a, но не принадлежащих A.

C. Your Rank is Pure

Задачу я решал методом динамического программирования. Пусть z[i][j] = количеству подмножеств {2,3,…,i} которые являются хорошими (в терминах задачи) и число i в них имеет ранг j. Тогда число j тоже принадлежит подмножеству и может иметь любой ранг от 2 до j - 1. Допустим его ранг равен t. Тогда на участке от j + 1 до i - 1 (включительно) нужно выбрать любое подмножество из j - t - 1 элементов, чтобы заполнить пропуск нумерации. Получаем, такую формулу:

.

Разумеется, все вычисления надо производить по модулю 100003 и предпосчитать таблицу биномиальных коэффициентов.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Сегодняшний раунд будет не совсем обычным. Дело в том, что участники из первого дивизиона могут зарегистрироваться на него и принять участие вне конкурса. Этот раунд будем считать некоторым alpha-тестированием для этой функциональности, но к следующему див. 2 раунду можно ожидать стабильной версии.

Это раунд подготовили для вас: homo_sapiensJuliaNerevarKudryashovIA и я.

Желаю высокого рейтинга,
MikeMirzayanov

Полный текст и комментарии »

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
На Codeforces есть известная мне проблема, которая иногда приводит к тому, что с началом контеста приходиться перезапускать приложение (то же самое касается и момента окончания контеста). Просьба не пугаться, если такое произойдет. В крайнем случае это займет 2-3 минуты. Я решаю эту проблему, но в данный момент она еще не решена полностью. Спасибо за понимание.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, перевод, По-русски
И снова здравствуйте. Надеюсь, никто не забыл зарегистрироваться?

На этом контесте мы попробуем альфу нашего чата - если пойдет что-то не так, мы его выключим: просьба не паниковать:)

Ссылки:
Авторы проблемсета: Дмитрий Матов и Игорь Кудряшов. За что им большое спасибо.

Желаю выйти в первый дивизион.
Mike Mirzayanov.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Иногда на контестах происходят забавные случаи. На недавней тренировке Иван Фефер (Feferдолго уталкивал одну из задач. Она никак не проходила. В конце концов он не выдержал и спросил. Последовал такой диалог:
Иван: - У меня вопрос по задаче D.
Я: - О чем задача.
Иван: - Ну та, что про дерево и запросы.
Я: - Так это же C.
Иван: - Понял... Вопрос снимается...

А какие забавные случаи случались с вами?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Добро пожаловать на Codeforces Beta Round #9. Задачи этого раунда подготовлены постояннымм участником наших соревнований Alex_KPR, за что ему большое спасибо. Так же в подготовке контеста принимал участие Nerevar.

Julia, тебе особое спасибо за великолепные переводы.

Желаю высокого рейтинга,
MikeMirzayanov

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Если кто не знаком с термином, то это способ создания контента силами сообщества. Можно почитать википедию.

Собственно, идея краудсорсить разборы задач кажется вполне естественной, но ... плохо работает. Как мы видим, уже не первый контест не находится желающих помочь сообществу. Вопроса собственно два: почему и как быть?

Давайте вместе обсудим этот момент. Что нужно исправить/улучшить/изменить, чтобы на Codeforces появились разборы?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, перевод, По-русски
Добро пожаловать и удачи на раунде!

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

Позже в этом же посте мы будет обсуждать прошедший раунд.

Желаю высокого рейтинга,
MikeMirzayanov.

UPD. Спасибо за контест надо говорить команде Saratov SU #5, а именно пользователям FeferGerald и Polichka.

UPD2. ...И лучше поздно чем никогда: наличием английских вариантов текстов условий мы обязаны исключительно пользователю Julia. Большое ей спасибо за 8 великолепных переводов 8 раундов соревнований Codeforces.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +22
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Контест перенесен на 15 минут. 

Спасибо всем за участие в Codeforces Beta Round #7. Надеюсь, вам понравилось. В комментариях предлагаю обсудить задачи и систему. Пожалуйста, выскажите ваше мнение, особенно если вы заметили какое-то неадекватное поведение системы. И как всегда я с интересом прочту предложения по улучшению.

С сегодняшнего контеста рейтинг по дивизионам для общих контестов будет считаться отдельно по двум таблицам положений участников. То есть подсчет рейтинга будет эквивалентен проведению двух контестов отдельно для каждого дивизиона по общим задачам.

Еще момент. Мне бы хотелось, чтобы кто-то взял на себя разбор задач прошедшего раунда. Это надо сделать на русском и английском языках. Разумеется вы должны сдать задачи либо на контесте, либо в дорешивании. Если у вас есть желание это сделать - пишите в комментариях. Ваш пост будет опубликован на главной и позже доступен по спец. ссылке из контеста.

Огромное спасибо авторам задач: RAD и e-maxx  подготовили и помогли провести контест.

Желаю высокого рейтинга,
MikeMrzayanov

UPD. Рейтинги обновлены. Решения доступны для просмотра.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +19
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Добро пожаловать на Codeforces Beta Round #6.

Будет здорово увидеть в комментариях ваши мысли и впечатления.

Желаю высокого рейтинга,
MikeMirzayanov.

UPD. В задаче D найдены тесты на которых некоторые решения участников выводят ответ лучше авторского. После выяснения подробностей и исправления ситуации, будет произведено перетестирование. Если оно приведет к изменению положения большого числа участников, то контест будет иметь статус "нерейтингового" соревнования.

UPD 2. В задаче были уменьшены ограничение и сделано перетестирование. По результатам перетестирования выяснилось, что никто из участников не представил правильного решения (даже для уменьшенных ограничений). Таким образом, перетестирование существенно изменило положение только четырех участников, которые сдали задачу на контесте. Однако, даже без этой задачи все они получают плюс к рейтинга, если рейтинг по контесту учитывать. Таким образом, принято решение оставить это соревнование рейтинговым, но в дорешивании эта задача доступна с меньшими ограничениями.

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

Полный текст и комментарии »

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Всем привет.

Свежие новости — появилась возможность просмотра кода решений. Во время контеста вы сможете просматривать исключительно свои решения, в то время как по его окончанию — кого угодно. При переходе на таблицу решений по задаче, по умолчанию она сортируется по длине программ. Обратите внимание, что внизу таблицы есть возможность смены критерия сортировки.

Если еще возможность для соревнования указывать политику просмотра решений, при которой возможно просматривать посылки по задаче, если она сдана (досдана) участником. Но я думаю, что к регулярным контестам лучше подходит политика, при которой после контеста все видят все. Я прав?

Чуть позже появится возможность просматривать решения конкретного участника.

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

Желаю высокого рейтинга,
MikeMirzayanov 

UPD. Теперь таблица положения участников (монитор) стала лучше — по двойному клику (или Ctrl + клик) вы можете просматривать историю посылок.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +14
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Добро пожаловать и удачи на раунде!

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

Позже в этом же посте мы будет обсуждать прошедший раунд.

Желаю высокого рейтинга,
MikeMirzayanov.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +17
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Всем привет.

В настоящий момент мы уже определились, что Codeforces Beta Round #5 следует проводить в субботу, 20-го марта. Открытым вопросом является время проведения. Хочется выбрать как-то так, чтобы участникам было максимально удобно. Просьба высказать ваши мысли о времени проведения в комментариях - конечно, следует не только писать как удобно именно вам, а предлагать какие-то мысли как выбрать лучшее время для большинства.

Желаю высокого рейтинга,
MikeMirzayanov

UPD. Всем спасибо за проявленный интерес - я прочел все комментарии. Затея оказалась полезной - я бы не учел все те замечания и аргументы, какие были высказаны. После глубоких раздумий, я решаю провести раунд с 19:00 по Москве - думаю этот вариант удобен большинству пользователей сайта. Это не значит, что мы не будем экспериментировать со временем в будущем - будем пробовать и утренние контесты, хотя 5 утра не обещаю :).

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Предлагаю обсудить здесь вопросы и проблемы, связанные с Codeforces Beta Round #4. С нашей стороны выявлены три сложности:
  • медленное тестирование - приношу извинения за большую очередь, к следующему раунду, предполагаю, значительно увеличить скорость тестирования
  • проблемы с Python - видимо решения хотят загрузить какую-то либу, загрузка которой запрещена
  • иногда некорректные RE - видимо это результат работы антивируса на серверах тестирующей системы, придется их выключить
Также предлагаю просто поделиться впечатлениями. 

P.S. И кстати, разбор задач ждет добровольца. Желательно, чтобы это был один из лидеров сегодняшнего соревнования. Напоминаю, что разборы задач надо писать по-русски и по-английски. Разбор будет опубликован на главной и позже доступен по спец. ссылке со страницы раунда.

UPD: Рейтинг обновлен. Поздравляю всех тех, кто остался в плюсе.
UPD 2: Особое спасибо пользователю KudryashovIA за большую помощь в подготовке контеста.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
В рассылке на русском языке мной была допущена опечатка. Фразу "Начало запланировано на 12-ое марта (пятница) 2010, 12:00" следует читать как "Начало запланировано на 12-ое марта (пятница) 2010, 15:00".

Полный текст и комментарии »

  • Проголосовать: нравится
  • -1
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
Предлагаю обсуждать здесь всего, что касается Codeforces Beta Round #3. Конечно, во время соревнования запрещено писать что-либо, касающееся решения задач и т.п.

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

Так же, пользуясь моментом, хочу анонсировать Codeforces Beta Round #4, который пройдет на следующей неделе. Он будет рассчитан на участников из второго дивизиона (новички + те, к кого рейтинг менее 1500). Мы постараемся не задерживаться с Codeforces Beta Round #5, в котором смогут принять участие все.

Желаю высокого рейтинга,
MikeMirzayanov

Полный текст и комментарии »

  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски

Все видимо уже в курсе, что Codeforces Beta Round #3 не состоялся в назначенное время. Произошло это, видимо, по причине возросшей популярности с одной стороны и некоторых наших багов с другой. Конечно, жалко, что все так произошло. С другой стороны, если бы все упало во время контеста, было бы хуже. Соревнование перенесено на воскресенье (7 марта), 15:00.

Хочу напомнить, что проект находится в стадии Beta и по результатам инцидента будет проведена соответствующая работа. Но я верю, что главное из таких случаев делать правильные выводы, находить ошибки, их исправлять и двигаться вперед.

Спасибо за понимание,
MikeMirzayanov

UPD. Как стало известно, в субботу будут проходить еще два популярных контеста, по этому встретимся в воскресенье на Codeforces Beta Round #3.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -1
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски

В связи со свершившейся Ноябрьской революцией цветов и званий, весь текст ниже теперь является всего лишь историческим документом.

Не так давно на Codeforces была введена система рейтинга. Для полноты картины представляю вам табель о рангах.

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

Рейтинг Звание
0-1199Рядовой
1200-1349Ефрейтор
1350-1499Сержант
1500-1649Лейтенант
1650-1799Капитан
1800-1999Майор
2000-2199Подполковник
2200-2399Полковник
2400-2699Генерал
2700+Маршал

Как вы успели заметить: пока в нашем полку только три капитана: vepifanovgusakovRAVEmanНо, я уверен, после Codeforces Beta Round #3 нас ждет большая серия повышений.

Желаю высокого рейтинга,
MikeMirzayanov

Полный текст и комментарии »

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
В связи с профилактической работой на сервере, сайт может быть не доступен в среду (3-го марта) с 17:00 до 20:00. Спасибо за понимание.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +14
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски

Как некоторые уже успели заметить – на сайте появился рейтинг участников соревнований. Пока он тоже находится в состоянии beta, но выглядит вполне адекватным. Вот как он считается.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски

Спасибо всем за участие в Codeforces Beta Round #2. Надеюсь, вам понравилось. В комментариях предлагаю обсудить задачи и систему. Пожалуйста, выскажите ваше мнение, особенно если вы заметили какое-то неадекватное поведение системы. И как всегда я с интересом прочту предложения по улучшению.

Поздравляю тройку лидеров: RAVEman, GarnetCrow и ivan.popelyshev!

До встречи на Codeforces Beta Round #3.

P.S. И кстати, разбор задач ждет добровольца. Желательно, чтобы это был один из лидеров сегодняшнего соревнования. Напоминаю, что разборы задач надо писать по-русски и по-английски. Разбор будет опубликован на главной и позже доступен по спец. ссылке со страницы раунда.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
В этом топике я бы хотел поднять вопросы вокруг Codeforces Beta Round #1. Что вам понравилось? Что не понравилось? Что показалось неудобным? Что вы видите можно изменить, чтобы сделать участие более комфортным? Какие у вас были проблемы во время участия? Интересно ваше мнение по поводу интерфейса.

Просьба не отписываться ярко по поводу (не)доступности сайта с адреса http://codeforces.me/ (я рекомендовал использовать http://codeforces.ru:8081/). Я догадываюсь в чем проблема. Связка Apache Virtual Hosts + AJP Connector то ли настроена кривовато, то ли работает плоховато. Короче, это я исправлю.

 Жду комментариев. И, конечно, приглашаю на Codeforces Beta Round #2.

Еще момент. Мне бы хотелось, чтобы кто-то взял на себя разбор задач прошедшего раунда. Это надо сделать на русском и английском языках. Разумеется вы должны сдать задачи либо на контесте, либо в дорешивании. Если у вас есть желание это сделать - пишите в комментариях. Ваш пост будет опубликован на главной и позже доступен по спец. ссылке из контеста.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

Автор MikeMirzayanov, 15 лет назад, По-русски
  • Проголосовать: нравится
  • +16
  • Проголосовать: не нравится