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

Автор agul, 16 лет назад, По-русски
Сегодня прошел очный тур ИОИП. 

После 18:00 (МСК), когда закончится 8 индивидуальная интернет-олимпиада на neerc.ifmo.ru/school/, проводимая по задачам ИОИП, предлагаю обсудить здесь решения и ожидаемые результаты (по правилам ИОИП за первые 5 попыток по задаче выдается количество баллов).
  • Проголосовать: нравится
  • +22
  • Проголосовать: не нравится

16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Хотел бы услышать нормальное решение задачи В, т.к. было жутко лень что-то нормально решать, и я в итоге сдал ее на 16 баллов.
16 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
кто-нибудь знает, как делать D на 100?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Решение D на 100 баллов

Понятно, что любая тоговая конфигурация - группы подряд идущих единичек, разделенные одним нулем. Заметим, что при такой конфигурации мы приходим в группу, наступая обязательно на первый ее элемент, а уходим, наступая на последний. Кроме этого, переход между группами осуществляется ровно одним способом (перепрыгиванием через ноль). Пусть у нас есть P групп, длина i-й группы Li, количество способов ее пройти Bi. Тогда произведение всех Bi есть количество способов пройти через все группы от начала к концу, а сумма всех Li + P - 1 - суммарная длина всех групп (+P-1 берется потому, что в конце всех групп, кроме последней, стоит замыкающий ноль).

Получаем, что произведение всех Bi = k, а сумма всех Li + P = n + 1. Теперь надо найти любой такой набор групп.

Заметим, что Bi - это числа Фибоначчи. Преподсчитаем всевозможные Bi до 10^18 (их всего 87). После этого искомое разбиение на группы можно найти рекурсивным перебором.

16 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Только мне показалось, что С сложнее,чем D? Или это так и задумывалось?
  • 16 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +1 Проголосовать: не нравится
    Не тебе одному. В Москве сотен по С нет. Хотя трудно сказать, какая задача сложнее в плане решения. В С оно почти на поверхности, зато фиг напишешь потом. В D же перебор пишется за несколько минут.
    • 16 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      У меня тоже не честное решение. Но я верю что оно даже может работать всегда.
      • 16 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +1 Проголосовать: не нравится
        Ты думаешь, что в D перебор, который я описал, не всегда будет работать на данных ограничениях? Или ты про С говоришь?
        • 16 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +1 Проголосовать: не нравится
          Про С. У меня разбор случеев + бфс + всякое шаманство.
          • 16 лет назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится
            Павел, а можно подробнее как решать С?
            По соревнованию: я его дико слил, не набрав даже 200 баллов, всё из-за того, что по тупости не мог решить В, вроде алгоритм верный, но набирает только 56 баллов. После этого опустил руки, ибо шансы даже на 3й диплом исчезли. В конце понял, как решать D, но похоже понял не до конца (успел набрать только 24 балла) или скорее времени не хватило. 
            Да, и что за случай такой в А из-за которого у многих (в том числе и у меня) задача набирает 90 баллов? Решал проверкой на 2 предела: первый момент, когда джедай лидирует и первый момент когда ситх лидирует.
            • 16 лет назад, скрыть # ^ |
               
              Проголосовать: нравится +1 Проголосовать: не нравится
              По поводу А: не знаю. Сам решал методом промоделировали первую 1100 дней, если ничего хорошего не вышло, то говорим что ситх всегда круче.
              По поводу B: Знаю только из-за чего бывает 94, что писал выше. Правильных решения 2 - бинпоиск и два указателя. На самом деле это одно и тоже. 56 могу предположить что потеряли long long или что-то еще такое.
              C: Нормальное решение такое. Посчитали расстояние от всего до конца (бфсом из конца по обратным ребрам). Нашли кратчайший путь по числу поворотов. и Бинпоиском ищем оптимальную по минимальной длине. по поводу как проверять. Хороший вариант от Саши Тимина. Будем считать динамику d[x][y][i][j] x,y - позиция. i - по чему мы в нее пришли (по аллее или по улице) j - сделали ли мы уже шаг. Тогда если шага не делали то будем ходить на С, иначе на 1. Вроде авторское решение - что-то похожее. 
              • 16 лет назад, скрыть # ^ |
                 
                Проголосовать: нравится 0 Проголосовать: не нравится
                Если решение действительно такое сложное, то странно, что мой просто bfs+восстановление пути набирает аж 84
                • 16 лет назад, скрыть # ^ |
                  ← Rev. 2  
                  Проголосовать: нравится 0 Проголосовать: не нравится
                  А бфс+востанавление пути + перебор путей из трех отрезков набирает от 92 до 100, в зависимости от реализации.
                  UPD: А просто перебор путей длины три набирает 76. Что не плохо против 80-90 которые получало правильное решение с багами.
              • 16 лет назад, скрыть # ^ |
                 
                Проголосовать: нравится 0 Проголосовать: не нравится
                Спасибо. Вроде В так и решал, лонг лонг в последней попытке засунул уже везде, но это ничего не изменило. Наверно, где-то просто закралась злобная реализационная багина)
                По поводу А. Ваше решение действительно проще моего. Почему-то я не подумал, что решится в течении 1000 ходоов. 
                В С думал написать ширину с восстановлением пути, но уже не хватило времени - слишком долго шаманил над В.
              • 16 лет назад, скрыть # ^ |
                 
                Проголосовать: нравится 0 Проголосовать: не нравится
                Я считал в А время, которое нужно каждому из них, чтобы догнать другого по данному умению. 
                Если вдруг максимальное время Джедая больше минимального времени Ситха, то все плохо.
                Самое хитрое - обработка случая, когда прибавление умения по данному умению (плохо как-то сказал) у джедая и ситха одинаково.

                А перебирать время побоялся из-за всяких хитрых случаев, но, видимо, их не было.
16 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +1 Проголосовать: не нравится
Да, С явно сложнее.
UPD: Это к верхнему посту.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Кто-нибудь в курсе, когда будут результаты?

16 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится
в этом посте появился ярый минусовщик?
16 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
Кстати, почему по D не проходит такое решение:

Заметим, что k - число Фиббоначчи. Тогда пусть fib[m]=k. Если m>k, то решений нет. Иначе, заметим, что поставив 0 в n-1 позицию, количество способов добраться до клетки n будет fib[n-2], а если поставить в n-2 позицию, то fib[n-3]. Получаем, что мы умеем получать количество способов fib[n], fib[n-2], fib[n-3], ...(fib[n-1] вроде не получить). Ну и после этого выставляем 0.

UPD. Оно получает 58 баллов.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А где-то можно подорешивать задачи?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

http://neerc.ifmo.ru/school/ioip/standings-2011.html

Неожиданно мало over 300...

16 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
 Предварительные результаты появились... Поздравляю Павел!
 UPD: думал первый буду)))
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Оу, как можно было сдать не тот файл по D в конце... ( epic fail просмотры баллов кончились...
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
странно, что так много людей с 0 баллов
это наверно те, кто не приехали вообще никуда?
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Дипломы будут присуждены по процентам от участников или по баллам? Просто если по баллам смотреть прошлый год, то тут дипломы получат 40 человек.
16 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Результаты интернет-олимпиады доступны по ссылке
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Когда можно ожидать окончательные результаты?
На сайте указано сегодняшнее число, но время уже явно не то. Полагаю, что задержка связана с проблемой в тестах по задаче С.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
В конце олимпиады в Петербурге сервер не выдерживал и жутко тормозил, было весело (хотя баллов из-за этого потерял...)