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

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

Всем привет!
17 декабря пройдет первый отборочный тур в Зимнюю компьютерную школу для школьников 10-11 классов. Приглашаем всех желающих принять в нем участие. Контест будет состоять из 6 задач. Условия задач будут доступны на русском, английском и китайском языках.  

Время начала тура: 16:00 (мск). Продолжительность: 3 часа.
Правила тура
Регистрация на тур


Желаем успехов !

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

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

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

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

ОГРОМНОЕ спасибо за информацию. А есть инфа когда ЗКШ проходить будет? Перед заочкой или же на зимних каникулах?

UPD. Не заметил инфу большим шрифтом в самом верху страницы. перед заочкой - это в стопицот раз круче чем на зимних каникулах! :D

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

Может ли кто нибудь рассказать что из себя представляет ЗКШ, можно ли в нее попасть не россиянину, насколько сложно туда отобраться, можно ли участвовать не во всех отборочных турах чтобы пройти (завтра, например, COCI в то же время) и дорого ли туда поехать?

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    В прошлом году все, у кого был выше 2-го диплома на вкошпе, денег не платили вообще. Школа длилась две недели. Обучение состояло из контестов формата acm и лекций(некоторые были связаны с олимпиадным программированием, некоторые нет). Проживали мы в аспирантской общяге мфти. Мне лично школа понравилась)
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +2 Проголосовать: не нравится

А есть ли кнопка "восстановить пароль к аккаунту ejudge"?

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А регистрироваться надо только в ejudge?
»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Монитор есть?
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Интересно, что за тест 52  в первой задаче...
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Тест такого вида:
    64009
    *: C p, q.
    *: Q F, ALD.
    *: s q.
    *: x, g S, W T.
    *: HC, cO.
    *: y d.
    *: d b, r.
    *: c, h V, Q u.
    *: N A, bkK.
    *: M V, xJ.
    *: i A, w.
    *: DB, TjQ.
    *: S j, Q U, Z N.
    *: J U, N O, n.
    ......

    Всего одна команда. Много раз. Имена из 1, 2, 3 символов.
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Не вижу подвоха в этом тесте)
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Однако чекер так не считает и говорит следующее:
        wrong answer 38th line differ - expected: ' h, 394.', found: ' k, 394.'
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Запустил локально. Ошибка следующая:
        должно быть 
        ....
        h, 394.
        k, 394.
        ....
        а у Вас 
        ....
        k, 394.
        h, 394.
        ....

        Т.е. при равенстве количества участий одного участника Вы не сортируете лексикографически участников.
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Нормально я так ошибся) гг
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Интересно, как это дошло до 52 теста, там же даже в примерах контрпримеры к этому есть...
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            не знаю, у меня локально сортируется
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          А там точно местами различаются? То есть оба участника есть,  но в разном порядке?
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Да. В этом тесте в двух местах (при равенстве участий в неправильном порядке) именно по два подряд не правильно.
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Надо учить Java =) 
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Можно просто длинную арифметику)
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      Лень. Лучше джаву) Да и полезней.
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +8 Проголосовать: не нравится
        Лучше то и другое - некоторые задачи BigInteger'ом в лоб и даже в зад не берутся.
»
12 лет назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится
Как одному из неудачников контеста, хочется знать, как же решать задачу B. Мне удалось дотолкать читосол до 96 теста, на большее времени не хватило.
Почти полезная информация: Задача E оказалась сдаваемой на C++. Длинка  на динамической памяти по 9 разрядов прошла без пропихиваний.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    B: за O(M + 3^N), предподсчитываем для маски была у нас или нет, а дальше ДП по маске, выдираем подмаску данной маски и смотрим ответ для получившейся.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Задача В - для каждой маски букв сохраним максимальное по длине слово, в которой присутствуют только эти буквы и только один раз. Дальше динамика f(mask) - максимальный выигрыш для текущей маски буков. Переход - перебираем подмаску нашей маски, запускаемся от f(mask ^ cmask), cmask - текущая подмаска. Получаем O(3^n + количество слов)
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится
      Блин... Я считал, что это TL :) Оказывается это имеет оценку O(3^N).
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

А архив жюри будет доступен? Или дорешка.

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

Не подскажете 6-ой тест в А?

Ну, или почему этот код - получает ВА на нем.

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится
    100000
     : a.
     : a.
     : a.
     : a.
     : a.
     : a.
     : a.
     : a.
     : a.
     : a.
     : a.
    (аналогично до конца файла)

    Название команды - пробел.
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У меня gets не считывает первый пробел, потому и ВА. Не знаете, почему так?
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Наверно из-за строчки  scanf("%d\n", &n);
        Лучше так не делать.

        Рекомендуется делать следующим образом:
        #define nextline() {int c; while ((c = getchar()) != 10 && c != EOF);}
        .....
        scanf("%d", &n);
        nextline();
        ....
        gets(s);

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ужос. А кто знает, каким фигом тот сканф мешает читать гетсу? Не вижу никакой логики.
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            команда scanf("\n") ровно как и scanf(" ") считывает все пробельные символы начиная с текущей позиции.
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Спасибо.
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится +3 Проголосовать: не нравится
          И вообще, побитовые чекеры - зло.
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Я обычно тогда все читаю gets'ом, а числа достаю из него sscanf.
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А можете дать 15 тест на задачу Е?
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Можно 9ый тест на задачу B, раз такое дело.
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Расскажите кто-нибудь как решалась D.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    В этой задаче необходимо было использовать структуру декартово дерево по неявному ключу, хранить в узлах дерева хеш поддерева. Информацию можно почитать вроде бы на e-maxx.ru
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Интересно, а корневая декомпозиция прошла-бы? А то я ее начал писать, а потом подумал что затаймит.
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Хороший вопрос, мне вот почему-то проще с декартовым написать.
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Возможно пройдет. Можно попробовать дорешать.
»
12 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
а как понять, прошол ли ты 1-й раунд или нет?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится -6 Проголосовать: не нравится
    Да, тур прошел. Результаты здесь: http://ejudge.innolab.net.ru/problems/000004/standings/standings.html
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится
      А сколько человек проходят в ЗКШ? 
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится -13 Проголосовать: не нравится

Просто слив... Почему нет компилятора delphi? Это же жестоко - сдавать под fpc и иметь +2 по задаче С не из-за алгоритмических ошибок и откатиться на 10 мест из-за штрафа -_- А задача А.... Глупая реализация, в которой у меня не работает qsort(WTF?!?!??!??!? WHY!?!?!?!??!?!?!), при этом ошибка больше похожа на баг в компиляторе уже у меня на компе. Может, пожалуйста, кто нибудь посмотреть мой код? Я понимаю, он немного нечитаем... Но заранее спасибо :D Хотел написать задачу Е - но понял, что длинка и отбросил эту идею :D

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

    Это не баг в компиляторе - это специфика FreePascal:
    Функция

    function less(a1, a2, b1, b2: string): boolean;
    begin
      result:= false;
      if a1 < b1 then result:= true else
      if a1 > b1 then result:= false else
      if a1 = b1 then begin
        if a2 <= b2 then result:= true else result:= false;
      end;
    end;

    применительно к реализации на FPC должна выглядеть так:

    function less(a1, a2, b1, b2: string): boolean;
    begin
    
      less := false;
      if a1 < b1 then less:= true else
      if a1 > b1 then less:= false else
      if a1 = b1 then begin
        if a2 <= b2 then less:= true else less:= false;
      end;
    end;
    Т.е. во фришнике не используется для возврата значения функции
    переменная result - в этом одно из отличий FPC от Delphi.
    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Спасибо!

      Ато я полтора часа промучался, перезагружая компьютер. Решение-то правильное! Хоть и написанное в спешке, и код совершенно нечитаем :D  Огромное спасибо, что разобрались в коде. Сейчас попробую переписать и сдать.

      UPD. Код все равно не работает. Строчка 

        if i < last then qsort(i, last);

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

      Либо это баг в дебаггере/компиляторе, либо это уже ошибка в коде ДНК.



      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        qsort просто нужно писать самостоятельно - компилятор его не находит в подключенных в системе библиотеках... :)
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ну... Я самостоятельно его и написал. :D Что-то непонятное творится с delphi... Ну ничего, завтра высплюсь - и найду ошибку) 
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
        Если дописать ключ "mode delphi" в начале, то будет и первый вариант работать  
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Иногда бывает что и 2я реализация не будет работать, то есть функции можно присвоить значение только один раз(возможно на новых версиях паскаля уже не так).
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Обязательно ли учавствовать в отборочных турах, чтобы попасть на ЗКШ?
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Что надо указывать в анкете регистрации на ЗКШ в графе телефонный номер, если я из Беларуси?...там написано, что надо указать 10 знаков, а у нас получается 12.