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

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

Скажите, пожалуйста, не будет ли являться публикация ссылки на библиотеку prewritten алгоритмов нарушением правил Codeforces? Может быть, подобная информация будет полезна неопытным участникам?

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

»
11 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Ну думаю во-первых это никак не нарушит:

Не публикуйте, не распространяйте свои решения и идеи решений во время соревнования.

Во-вторых как бы это не нарушит 11-ый пункт здесь, и не думаю, что это нарушит какие-то правила вообще из этого списка.
Все же ничто не мешает взять и скопипастить какой-то алгоритм с http://e-maxx.ru.
Каждый будет сам решат пользоватся этими решениями или нет, и даже если запрещено это, то ничто не запрещает опубликовать его где-нибудь в другом месте.
Но все это ИМХО...

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +17 Проголосовать: не нравится

    Не претендуя на широту охвата тем, отмечу, что мой код более читабелен и структурирован, чем на e-maxx.ru

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

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

      Хотелось бы узнать что же именно из себя будет представлять эта библиотека?

»
11 лет назад, # |
  Проголосовать: нравится -7 Проголосовать: не нравится

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

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

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится

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

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

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Не знаю, как на счет реализации, которая в свою очередь может решать, но все же кто-то может даже изменить свой стиль написания кода, и понять его, возможно, будет проще. Хотя может я и не прав.
      А насчет сохранить для дальнейшего использования — это не очень хорошо, ведь алгоритм может пригодится и там где нельзя пользоватся prewritten кодом, даже своим.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится

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

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится +12 Проголосовать: не нравится

          Вы не правы.

          1. Конечно же, во время соревнования категорически запрещено общаться с другими участниками, использовать не свой код для решений/генераторов, обмениваться идеями решений, взломов. И вообще, нарушение правил спортивной и личной этики может привести к дисквалификации. Также запрещается осуществлять взлом системы соревнований в любой форме. Короче, уважайте других и себя.

          Пруф.

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
            Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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

            • »
              »
              »
              »
              »
              »
              »
              11 лет назад, # ^ |
                Проголосовать: нравится +3 Проголосовать: не нравится

              Поэтому я внизу и спросил, каковы механизмы отлова)

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
              Проголосовать: нравится +6 Проголосовать: не нравится

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

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится +3 Проголосовать: не нравится

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

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
            Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

            А как там можно получить дисквал за читерство с prewritten code, не используя его? о_О За ИОИ и УОИ не отвечаю, но на РОИ с этим все строго — никаких электронных носителей, доступа в инет нет, да и траффик просматривается жюри.

            • »
              »
              »
              »
              »
              »
              »
              11 лет назад, # ^ |
                Проголосовать: нравится +1 Проголосовать: не нравится

              Вы организатор? Или вы участвовали на всех этапах во всех местах, где это было возможно? Не стоит с такой уверенностью утверждать, что ни у кого никогда нет такой возможности.

              P.S. Конечно, речь не про заключительный этап.

              • »
                »
                »
                »
                »
                »
                »
                »
                11 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

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

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Я не достаточно опытный, но все же чужой код иногда очень помогает для понимания алгоритма, или же просто решения какой-нибудь задачи.

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Согласен, что код может помочь если ему сопутствует подробное объяснение того, как и почему он работает. Но очень похоже, что данная библиотека в первую очередь сделана не для обучения, а для использования на практике, что может навредить "неопытным участникам", о которых идётся в сообщении автора, если они будут использовать его, не раздумывая особо над принципами его работы.

      Если я не прав, то заранее прошу прощения.

»
11 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

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

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    Каковы механизмы отлова недобросовестных участников?

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится

      И, главное, что с ними будет?
      А то так половину русскоязычных плюсоводов можно наказать за копипасту с емакса :)

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится +18 Проголосовать: не нравится

        Копипаста с е-макса идет труднее, чем самописный текст. Во-первых, надо подогнать все структуры и константы под свое решение (или наоборот), во-вторых, сразу читать комментарии, чтобы узнать, в какой строчке что надо исправить. В результате от исходного текста остается только структура.

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится +11 Проголосовать: не нравится

          Ой как заминусовали-то емаксолюбители :-) А ведь абсолютная правда, при должном знании алгоритма гораздо проще его набить с нуля чем чего-то копипастить и подгонять под задачу.

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
            Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

            На одном из общих контестов здесь была задача уровня С(или может даже D) вида "поймите, что это поток и посчитайте величину этого потока".
            Толпа синезелёных сдала код с емакса с 5-6 дописанными строчками кода.
            Ясное дело, что это недоработка автора задачи, но всё-таки.

»
11 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

Публикую ссылку. В ближайших планах: 1) Модификация алгоритма сжатия цветков с использованием системы непересекающихся множеств. 2) Добавление алгоритма Хопкрофта-Карпа для нахождения максимального паросочетания в двудольном графе за O(sqrt(V)*E). Абсолютно любые комментарии будут приняты к рассмотрению.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Когда-то была задумка сделать толковый сайт с исходниками алгоритмов.

    Фичи планировались такие:

    • Каждый алгоритм снабжается описанием (с поддержкой tex)
    • Для каждого алгоритма исходники на разных языках (C++, Java, Python, Ruby)
    • Возможность оставлять коменты для исходников и описаний

    К сожалению дело застопорилось за недостатком мотивации, осталось только это: http://sources.heroku.com

    По поводу непосредственно библиотеки алгоритмов у меня остаются как минимум 2 нерешённые проблемы:

    1. Создать удачный шаблон для геометрических операций. Тут, например, встаёт проблема выбора Integer Coordinates vs Double Coordinates. Плюс хочется, чтобы шаблон был достаточно функциональным и одновременно несильно перегруженным.
    2. Найти простую и понятную реализацию Триангуляции Делоне и диаграммы Вороного хотя бы за O(N*sqrt(N)).
  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    А за что этот пост сильно минусуют? Код вроде понятный, читабельный, должен быть удобен для использования. Да, там нет тупых алгоритмов, но их, в принципе, можно и написать, это занимает не так то уж и много времени.