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

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

Подойдет любой online judge.

Спасибо.

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

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +7 Проголосовать: не нравится

С прошедшего CodeChef June 2012 Long Round была задача CLOSEST, в которой нужно было для набора точек P и набора точек-запросов Q для каждой точки-запроса q найти ближайшую к ней в наборе P. Это немного не Closest Pair problem, но смежная задача.

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

Спасибо за советы. На самом деле мне стоило сразу заглянуть на http://e-maxx.ru/algo/nearest_points. Там конце есть список задач.

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

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

    В поддержку отечественного производителя: на e-maxx дана ссылка на задачу про треугольник минимального периметра за NlogN CodeJam Finals 2009. Есть ровно такая же задача на тимусе (2006 год).

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

Ещё есть, в абсолютно прямолинейной и очевидной постановке, на http://informatics.mccme.ru/moodle/mod/statements/view3.php?chapterid=3779 (Если там вдруг что не так — буду благодарен за bug report, но вроде должно быть всё нормально...)

А вообще с этой задачей довольно весело, что есть несложная эвристика тупейшего алгоритма, которую весьма сложно завалить ограниченным набором заранее заданных тестов. Подробнее http://codeforces.me/blog/entry/3879

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

    Мне все хотелось у кого-то спросить: для какой цели нужны задачи такого рода: написал алгоритм, ПРЯМО предназначенный для решения именно этой задачи и получил АС?

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

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

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

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

        Да, теперь понял. А мне только что вспомнилось, как нескольким группам по специальности "Информационные системы" в нашем универе подкинули задачу "посчитать, сколько существует чисел на промежутке [l; r] (10^7 <= l, r < 10^8), таких, что сумма первых четырех цифр равна сумме последних четырех цифр, ТЛ = 2 секунды". Задачу не решил никто.

        P.S. Очевидно, я учусь на другой специальности :).

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

          ...Может, компы медленные были?:)

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

            Может, на дворе был 2011 год, а студенты во время вычисления суммы цифр выполняли восемь делений вместо в худшем случае двух? :).

            UPD. Я гоню: не восемь делений, конечно, а шестнадцать.

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

              Ну, на кодшефе даже такое бы стопудово не прошло;)

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

                На кодшефе лично я бы написал meet-in-the-middle за O(sqrt(r) * log(r)) и не парился.

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

                  Задача "сколько чисел на отрезке таких, что сумма первых четырех = сумме последних четырех" решается динамикой. Если зафиксировать длину числа, состояние = [сумма1, сумма2, сколько цифр уже выписано]. Выписывать цифры нужно со старших разрядов. Чтобы удобнее писалось, как обычно, можно сказать, что [l..r] = [1..r] — [1..l-1].

                  В универе скорее всего хотели, чтобы вы написали перебор, который работает за 10^8 сложений, сравнений и обращений к памяти.