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

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

Сегодня, в 14:00 (MSK) состоится третья командная интернет олимпиада на http://neerc.ifmo.ru/school/.


По решению жюри, команды, прошедшие на ВКОШП, имеют право участвовать в усложненной номинации, даже если по правилам они должны были участвовать в базовой.

Предлагаю после окончания олимпиады в усложненной номинации (после 19:00 (MSK)) обсудить здесь задачи.
  • Проголосовать: нравится
  • -5
  • Проголосовать: не нравится

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

Как-то странно, пытаюсь залогиниться в клиенте, мне пишут "Wrong login name or password", хотя и логин, и пароль точно правильные ввожу. Как-то раз такое уже было...Никто не знает причину? Проблема решена

15 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +5 Проголосовать: не нравится

Сейчас время 14:05:

1. Задач на сайте нет
2. Но есть уже 1 accepted.

upd: Дайте прямую ссылку на задачи если у кого есть.
15 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Какой-то баг жюри: задачи и результаты с прошлой олимпиады.
15 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится -9 Проголосовать: не нравится


15 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится -10 Проголосовать: не нравится

Вопрос по задаче C: Почему такие ответы на тесах из условия? (У меня получилось Unique ("aaa") и Impossible соответственно)? Условие несколько раз перечитал и не понял.

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Как решать B, E, F?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    B. Понятно, что штаб должен быть центром дерева. Мне сложно строго это доказать, но интуитивно понятно. Ищем центр дерева и проверяем симметрию. Берем два дерева, корнями которых будут соседи центра. Для каждого уровня каждого дерева выпишем все степени вершин и отсортируем их. Проверим на равенство два набора списков. Если равны - ДА, не равны - НЕТ.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Задача B:
    Я сначала подвесил дерево за вершину, из которой проходит ровно одно ребро. Затем подсчитал cnt[i] - количество вершин в поддереве, вершиной которого является i-я вершина. Нам будет подходить такая вершина x, что кол-во соседей у нее 2(назовем их l и r) и cnt[x] *2+1= n. Таких вершин не более 1. Если мы нашли такую вершину, подвесим дерево за нее. Теперь пересчитаем cnt. Запишем эти значения в два разных массива (если путь от i-й вершины до x-й проходит через l, то в первый массив, иначе во второй). Отсортируем по возрастанию числа в этих массивах. Если массивы совпадают, то YES иначе NO
    • 15 лет назад, скрыть # ^ |
      ← Rev. 2  
      Проголосовать: нравится 0 Проголосовать: не нравится

      Контртест к обоим этим решениям:

      23

      1 5

      2 6

      3 6

      4 7

      5 8

      6 9

      7 9

      8 10

      9 11

      10 11

      11 12

      23 19

      19 16

      20 17

      21 18

      22 18

      16 14

      17 14

      18 15

      14 13

      15 13

      13 12

      Штаб – вершина 12, с номерами меньше 12 – левая часть, остальные – правая.

      Массивы отсортированных размеров поддеревьев одинаковы для обоих частей, но сами деревья не одинаковы.

    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      это прошло тесты жюри?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Подскажите кто-нибудь, как решать задачу E(Зарплата) и C(Игра).
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    C. Представим нашу строку как граф. Вершины - символы. Ребра между символами будут обозначать равенство этих символов. Забьем начальную строку вопросами. Далее будем добавлять строки, которые говорит девочка. Каждый раз будем проводить ребра 0 --- (n-1) 1 --- (n-2) и так далее. То есть так, чтобы строка становилась палиндромом. Для последней полученной строки не будем этого делать. Когда добавили все строки, запустим дфсы из всех символов, не являющихся вопросами и будем красить всю компоненту связности в нужную букву. Если встретили противоречие, т.е. мы хотим покрасить одну букву в другую - кидаем impossible. Если все хорошо, допишем последнюю строку и проверим, что не получается палиндрома. Если получается - impossible. Иначе, если есть вопросы, то ambiguous, нет - unique.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    В задаче Е достаточно заметить, что все кубы будут не длиннее 54 знаков (на самом деле даже 49), а дальше просто искать первый и последний куб данной длины. Первый куб данной длины можно найти из последнего куба предыдущей, а последний, например, бинарным поиском. Потом необходимо определить, к кубу какой длины относится позиция k и вывести нужную цифру нужного куба. В этом решении нужна длинная арифметика.
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
А кто как решал H? Я возводил матрицу смежности в степень k. За n^3*logk/64. Я почти уверен, что есть решение попроще и побыстрее.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Как F решать?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Идея состоит в том, что при повороте плоскости на 45 гр. против часовой стрелки и домножении координат точек на sqrt(2) мы приходим к ситуации, когда часовые стоят в точках (х-у;х+у) и освещают часть плоскости, границы которой параллельны осям координат. То есть если направление 'N', фонарик освещает всех часовых с x<=x',>=y'. Если 'E', то x>=x', y>= y' и так далее. 
    Приходим к задаче, когда нам надо уметь отвечать на запросы offline типа "все точки, у которых x<=(>=)x' и y<=(>=)y'  ". Такое я делал с помощью дерева отрезков. 
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Нет, ну, задача про зарплату доставила, простая ужасно, но, тем не менее, минут 20 не могли найти ошибку, а ошибка, похоже распространенная, в том, что номера месяцев не в интервале [1..12], а просто увеличиваются на 1 каждый новый месяц :\
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    В том то и вопрос, что строка может состоять из большого количества символов :). Я так думаю, что здесь - закономерность. Подскажите, пожалуйста, как решается эта задача. 
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Там не закономерность. Если вкратце, перебираем сколько цифр будет в кубе очередного числа, там не больше 60 цифр. Потом дихотомией подбираем минимальное и максимальное число с таким числом цифр в своем кубе. Потом, зная это можно определить что число имеет больше цифр чем мы пытаемся подобрать сейчас или что кубу какого числа принадлежит k-й символ.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
мы одни такие извращенцы написали в А 31 иф? и вообще как ее надо было по умному решать?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Может кто-нибудь рассказать условие задачи I? У нас было три трактовки, ни одна не подходила под пример.