Пользователь
0,0
рейтинг
9 сентября 2011 в 17:33

Разработка → Спортивное программирование: «С чего начать?» из песочницы

Под катом — список из 15 лучших ресурсов, посвящённых Спортивному Программированию.


1. [TopCoder] — Пожалуй, самый известный портал, посвященный СП. Так же, пожалуй, и самый престижный. Проводятся соревнования, в наличии обучающие статьи, форум.
2. SPOJ — Наверное, самый большой архив задач. Есть задачи как на стандартное решение, так и т.н. «программистский гольф» — соревнование, где участники должны решить поставленную проблему сделав как можно меньше нажатий клавиш.
3.CodeForces — Периодически проводятся онлайн-контесты. Имеются разборы некоторых соревнований.
4. Timus — Содержит крупнейший в России архив задач с различных соревнований по спортивному программированию.
5. CodeChef — Ежемесячные on-line контесты.
6. Google Code Jam — Ежегодная олимпиада, проводимая компанией Google.
7. ACMP — Сайт содержит архив задач по олимпиадному программированию со встроенной проверяющей системой.
8. Informatics.mccme.ru — Так же полезный сборник задач, удобная навигация.
9. DL GSU — Белорусский архив задач с большинства сколько-нибудь значимых региональных и международных олимпиад. Слегка непродуманный интерфейс, но качество задач того стоит.
10. NEERC — Официальный сайт Всероссийской командной олимпиады школьников по программированию, олимпиад в Санкт-Петербурге, интернет-олимпиад по информатике. Имеется архив олимпиад, форум.
11. graninas: ICFPC — ежегодный контест по функциональному программированию.
12. nicolausYes: UVa Online Judje — Огромное количество задач(несколько тысяч), в том числе из финалов ACM ICPC.
13. valzevul: SnarkNews — самая актуальная информация о соревнованиях и сборах по олимпиадному программированию.

Ну а теперь вперёд, дорогие хабровчане. Всем успеха, и побольше вам «accepted»!
@Quadrocube
карма
25,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (30)

  • +8
    ICFPC — ежегодный контест по функциональному программированию. Очень-очень-очень интересный. Хотя именно функциональное программирование на нем не обязательно.
    • 0
      Фактически, контест ничего общего с функциональным программированием не имеет. Просто так исторически сложилось, что он проводится в рамках конференции по функциональному программированию. Задачи можно решать используя множество различных технологий (включая и функциональные языки).
      • 0
        В этом году он был очень даже функциональным. Наверно, даже самым функциональным из всех. Вы участвовали?
        • 0
          Увы, в этом году поучаствовать не получилось. Участвовали в прошлом, но ничем выдающимся так и не отличились :)
  • +4
    А как же uva.onlinejudge.org/?
    • +3
      Расширю свой ответ. Плюсы этого ресурса:

      1. Огромное количество задач(несколько тысяч), в том числе из финалов ACM ICPC
      2. При просмотре списка задач видна удобная статистика — процент решивших задачу и процент успешних отправок. Выглядит так — clip2net.com/s/1ae7N
      3. По каждой задаче подробнейшая статистика(тут надо смотреть картинку). Доля Accepted, Time Limit, Wrong Answer и т.п. от всех решений, доля каждого языка в отправках, топ-20 решений по скорости и место, на каком находится ваше быстрейшее решение, если вы эту задачу уже решили. Выглядит так — clip2net.com/s/1aeaa
      4. Наличие форума и темы по каждой задаче, где всегда и подскажут алгоритм решения, и дадут верные выходные данные на предоставленные входные, и даже могут подсказать что не так в коде, если что-то не получается
      5. Информативная страничка личной статистики. clip2net.com/s/1aeb4
      6. Вроде еще где-то был генератор выходных данных почти для всех задач

  • +1
    Хорошая подборка, спасибо! Давно искал что-то подобное.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +3
    Спасибо за подборку ссылок. Они, конечно, все уже подсвечиваются как посещенные, но все равно — лишними не будут.

    От себя хочу добавить snarknews.info — как-то так сложилось, что именно там можно найти самую актуальную информацию о соревнованиях и сборах по олимпиадному программированию :).
  • +7
    Несколько мыслей на эту тему. Мне очень нравится спортивное программирование. Я в этом не гуру, я не выигрывал топовые соревнования, но я всегда стараюсь участвовать в подобных мероприятиях, хоть опыт мой в этом не мал, но я все еще нервно клацаю F5 после отправки решения и с замираем сердца жду в следующий момент заветный ОК/Accepted.

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

    Существует тенденция, что чем старше человек, тем меньше вероятность, что он заинтересуется СП. В статье уже сказано, что человек может уже реализовал себя, либо потерял всякое желание к обучению (либо пребывает в стадии 4 сей замечательной статьи habrahabr.ru/blogs/crazydev/39300/). Именно поэтому в средних ВУЗах СП приходит в упадок. На первых курсах зачастую некому привить желание к СП начинающим программистам, некому с ними заниматься, а на последних талантливые программисты уже работают и заинтересованы в карьерном росте и зарабатывании денег. (Речь здесь не идет о тех людях, которые участвовали в олимпиадах еще со школы, таких обычно пытаются переманить лучшие ВУЗы страны). В итоге, в университете, который ежегодно выпускает десятки программистов, нельзя собрать даже одну команду, чтобы куда-то отправить на соревнования. Студенты сетуют на то, что их этому не учили и с ними не занимались. Руководство университета спихивает все на то, что студенты слабые, немотивированные, ничем не интересуются. Университет здесь не прав, так как хочет получить какой-то результат, ничего при этом не дав. Как результат университет не имеет людей, которых могут с достоинством защищать честь университета, а большинство студентов, которых не заинтересовали СП во время учебы, так им и не заинтересуются.
    А мотивировать совсем то просто. После школы у начинающих программистов все еще имеется юношеский максимализм, они пытаются выделиться из толпы, добиться в чем-то хорошего результата. Нужно только направить людей в нужное русло. Даже просто устраивать внутренние соревнования, а потом давать грамоты победителям, скажем, на день факультета или университета. Оплачиваемые командировки в разные города и освобождение от некоторых предметов тоже стимулирует людей заниматься СП. Но это долгая история, можно даже написать статью на эту тему:)
    • +1
      ловлю вас на слове! пишите!
    • 0
      Присоединяюсь, было бы очень интересно прочесть.
  • 0
    Зачетная подборка. Не подскажете, есть ли русские вариации на тему. Я с английский конечно дружу, но бывает сложно понять суть поставленной задачи в полной мере.
    • 0
      Упомянутых в статье codeforces.ru/ и acm.timus.ru/ вполне достаточно для довольно продолжительного времени тренировок. А informatics.mccme.ru/ еще и обладает неплохой теоретической базой. Все на русском ;).
      • 0
        Не сразу понял, что русские. Не обратил внимание на домен.
  • 0
    Извиняюсь, если это не подходит под формат топика:
    codingbat.com
    Задачки для явы и пайтона с проверкой правильности на лету.
    • +1
      Этот сайт очень хорош для изучения языка, но задачи олимпиадного программирования обычно посложнее, чем «Дан массив, найдите сумму первых двух его элементов».
  • +1
    Вопрос к людям, которые занимаются спортивным программированием, в чем его преимущество перед работой над большим реальным проектом (бесплатно ради опыта)? Мне уже менять выбор поздно, но интересно Ваше мнение.
    • 0
      А зачем делать выбор? Лично для меня важны как практическая составляющая программирования, так и олимпиадная. И та, и та поднимают тебя на новый уровень, но в разных аспектах. Фокусироваться на чём-то одном, по моему, бессмысленно.
      • 0
        Потому что есть такой ограниченный ресурс как время. Можно потратить 10 часов в неделю на реальный проект, а можно потратить те же 10 часов на олимпиадные задачки. Если тратить по 5 часов туда и туда, по-моему, ничего хорошего не выйдет.

        Просто мне кажется, что если есть действительно интересный проект, то он будет содержать в себе все те задачки, которые решаются на олимпиадах (во всяком случае у меня был такой опыт)
        • 0
          Имхо, всё же стоит по 5 туда и туда. С вариациями ориентируясь по текущей ситуации.
          • 0
            Может быть Вы и правы, но мне как-то всегда было странно решать абстрактные задачки, когда можно было решать реальные.
            • 0
              Если у вас есть возможность постоянно принимать участие в действительно интересных и трудных проектах, то всё просто замечательно. Но есть одно «Но»: А действительно ли у большинства есть такая возможность? По моему (пока не очень богатому), но всё же опыту, ответ прямо противоположный. Большинство проектов если и реализуются не «в лоб», то решаются 5 минутным поиском в гугле, и в худшем случае банальным копипастом, а в лучшем — попыткой разобраться в алгоритме, который потом забывают за неделю после сдачи проекта. СП же предполагает, что вы будете регулярно решать интересные задачи, которые не только будут приносить удовольствие от решения, но так же и обогащать ваш запас знаний. Как-то так.
              • +1
                Вопрос хороший… с одной стороны, на работе часто бывают не очень интересные проекты (хотя надо искать другую работу в этом случае, имхо), но ведь в случае с СП человек тратит свое личное время, т.е. он с таким же успехом может взяться за любой проект, который ему интересен. Проблем у человечества еще достаточно, на всех хватит:) Тут уж скорее проблема в том, что сами по себе люди редко ищут сложные проблемы, а сами к ним эти проблемы приходят не так уж часто.
                Выложу через недельку пост с предложением поучаствовать в сложном проекте без зарплаты, но ради опыта и других плюшек, посмотрим сколько будет желающих:)
            • 0
              Хотелось бы услышать и другие мнения по этому поводу. Хабравчане, u are welcome!
  • 0
    Опыт в спортивном программировании — огромный плюс! Если коллега бывший\действующий СП — понимаем друг друга с полуслова, и печально смотреть на ребят, которые написали первый if statement на первом курсе на паскале.
    • 0
      Да, жаль.

      Небольшое уточнение — в СП переквалифицируются ещё и те кто в школе успешно участвовал в олимпиадах по математике, при этом почти не занимаясь программированием.
  • +1
    Я projecteuler.net/ иногда решаю.
  • +3
    На e-maxx.ru собраны статьи по 140 алгоритмам на текущий момент, всё с реализациями на cpp. Сейчас почему-то недоступен, но через кеш гугла посмотреть можно.
  • 0
    Участвовал в Google Code Jam — очень понравилось. Как и задания, так и организация. Рекомендую любому девелоперу попробовать: почти нет ограничений на язык, времени на начальных этапов много.

    В общем, попробовать может как начинающий так и профи :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.