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

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

Всем привет!

Сегодня пройдет Codeforces Round #137 для участников второго дивизиона. Как обычно, остальные могут принять участие вне конкурса.

Задачи подготовила группа авторов из Владивостока — Илья Збань (izban), Алексей Евсюков (aevsyukov), Захар Войт (zakharvoit). Огромный вклад в подготовку раунда внес Геральд Агапов (Gerald), большое ему спасибо. Перевела задачи Мария Белова (Delinur). Также выражаем благодарность Павлу Кунявскому (PavelKunyavskiy), который тоже предложил свою помощь в подготовку контеста.

Разбалловка сегодня стандартная (500 — 1000 — 1500 — 2000 — 2500).

Всем удачи!

UPD: Начало контеста передвинуто на 15 минут по техническим причинам, приносим свои извинения.

UPD2: Опубликован разбор. Пока только на русском.

UPD3: Поздравляем победителей!

Во втором дивизионе первые 10 участников:

1: zxl0714

2: resodo

3: mugurelionut

4: hmspmy077

5: CCC

6: white_rich_beautiful

7: loveSakura

8: gcwtft827

9: yuxingdubai

10: b821213

В первом дивизионе, оторвавшись на взломах по задаче С, первые места заняли

1: navi

2: Shik

3: SteamTurbine

Надеюсь, вам понравилось!

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

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

Даже не знаю, что чувствовать, когда люди из моей комнаты в ЛКШ делают контест на CF. Какие-то неоднозначные эмоции.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

I am a novice and competing first time on codeforces. Can you please guide me through the blueprints of competition process. Thanks for your help in advance!

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

Надеюсь поднимусь

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

good luck for every one!

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

 

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

thanks

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Codeforces servers went owie. :(

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

эх

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

Я сервер Codeforces, и я не хочу contest №137, я хочу 502 Bad Gateway.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Сервера codeforces нас очень сильно огорчают(

»
14 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Что с сервером??? 500 Ошибку выдает все время

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Eat lunch as fast as you can... and wait 12minutes for contest start :D

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

What's the trouble before?

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

Сейчас во Владивостоке глубокая ночь же, да? Жизнь за Нер-Зула майку Problem Writer!

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

и не на 10 минут передвинули, а на все 15..

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

Can someone explain test 1 on div2 C problem? Why is it: 2 3 2 1 1 1 1 and not for example: 1 1 2 1

»
14 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Может я чего-то в этой жизни не понимаю — ошибка компиляции в java 7 из-за комментария на русском :

Can't compile Solution.java:
Solution.java:54: error: unmappable character for encoding Cp1252  
                //Р§РёС?ло РїСЂРѕС?тое 
                       ^ 
Solution.java:54: error: unmappable character for encoding Cp1252 
                //Р§РёС?ло РїСЂРѕС?тое 
                                    ^ 
2 errors
»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I can't understand problem C and D mean. :|

»
14 лет назад, скрыть # |
 
Проголосовать: нравится -10 Проголосовать: не нравится

I can't understand problem C and D mean. :|

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

В чем смысл 10го теста задачи C ?

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

мне одному показалось что B много легче A ?)

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

    Более того, E легче, чем A.

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

      В E вроде как надо учитывать композицию, что-то типа:
      Запрещенные строки ab, ba
      Если считать втупую, то aba может посчитаться два раза.
      P.S. Можно вкратце решение?

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

        Вроде возведение матрицы в степень.

      • »
        »
        »
        »
        14 лет назад, скрыть # ^ |
        ← Rev. 2  
        Проголосовать: нравится +3 Проголосовать: не нравится

        Считаем динамику a[i] (a[i] — вектор длины m) — сколько способов получить геном с символом i на конце. Если n=1, то это вектор из единиц, иначе a[i] получается из a[i-1] линейным преобразованием. Матрицу вывести нетрудно: A[i][j] == 1 тогда и только тогда, когда пара (i j) не запрещена. Возводим матрицу в степень n-1, умножаем на вектор из единиц (то же самое, что посчитать сумму ее элементов). Все.

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

        Совершенно стандартная задача.

        Буквы — вершины графа. Спрашивают: сколькими способами можно попасть из какой-то вершины в какую-то, сделав n-1 ходов. В инпуте нам сказали, какие ребра удалены из полного графа. Построим матрицу смежности A. Попасть из вершины x в вершину y за k ходов можно за (A^k)[x][y] ходов. Ответ на задачу — сумма всех значений (A^(n-1)).

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

        Задача эквивалентна подсчёту кол-ва путей длины n - 1 в следующем ор. графе: V — первые m символов, <=> пара (u, v) не запрещена. Решение последней описано тут.

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

      Спорно.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Could anyone give me an Idea for solving C without having to decompose all the values to its prime factors (this strategy gave me TLE)? Or is it mandatory to do that and my implemtation was simply too slow?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

В задаче С должна проходить факторизация за логарифм с препроцессингом? Просто не очень ясно, как потом упаковывать множители так, чтобы вложиться в ограничения и на каждое число, и на количество. То есть, интуитивно кажется, что упаковка "в лоб" должна соответвтвовать ограничениям, но как доказать это — совсем не ясно.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

When I finally did dare to lock my C, I found that I can hack 2 solutions with max tests, then the contest ended. Sigh. Seems courage is really important.

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

Почему 2110913 работает долго?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

There was a slight error in the problem description. The "Input" says columns will be given first then the rows. However, the examples showed that this was not the case. Anyway, the round was good.

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

Very long systest.

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

Привет, спасибо за контест, было интересно порешать, самые большие трудности у меня вызвала задача C, и A зафейлил из-за маленького массива. Хотел бы напутствовать авторов в будущих контестах завальные тесты (особенно по ТЛ) ставить ближе к началу, печально ждать вердикта и видеть в статусе столбиками вердикты навроде TL 57, TL 49.

  • »
    »
    14 лет назад, скрыть # ^ |
    ← Rev. 5  
    Проголосовать: нравится +3 Проголосовать: не нравится

    Вспомнился случай, который произошёл во время Сборов программистов в Ижевске. Там была задача на какую-то оптимизацию, вроде метода четырёх русских (матрица представляется битами). ТЛ у этой задачи был очень большой, по тем временам очень очень большой, что-то около 15-20 секунд. Мы сабмитили какую-то лажу — ТЛ-ные решения, и тем самым серьёзно подвесили сервер. snarknews — Snark вошёл в нашу комнату и громко так высказал что-то вроде "Тюменская команда повесила сервер, я прибиваю последние ваши сабмиты из очереди проверки, бла бла бла". Было довольно неприятно, что все покосились на нас, будто сабмит задачи это преступление какое. Проблема была в том, что тот макс тест на ТЛ, который таки валил задачу был в нескольких десятках других больших тестах от начала.

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

По-моему, авторы случайно перемешали отсортированные по сложности задачи :)

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

Reds( http://www.codeforces.com/contest/222/submission/2109757 ) can also fail div-2's A. Well done problem setters! :)

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

Ээээ кхм-кхм. B, TL 60. На запрос отвечаю за O(1). Это потому, что cin cout долго работает, да? Ну никак не ожидал в этой задачи TL'а — k до 5*10^5!!!

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

Is there a particular reason why the two pointer solution gives TLE when using library sort in Java but gives AC when using library sort in C++? Is it Java I/O or the library sort? I see that uwi has an AC Java solution using radix sort, but I am yet to see an AC Java solution using Arrays.sort.

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

Кто еще решал А без массива? 2111830

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

какая идея в D?

  • »
    »
    14 лет назад, скрыть # ^ |
    ← Rev. 4  
    Проголосовать: нравится +1 Проголосовать: не нравится

    первое число в ответе всегда 1. у нас больше чем x очков, может у нас быть 100500 очков — да. Второе число можно получить выделив максимальное число таких i, j что a[i] + b[j] >= x. каждый элемент обоих массивов в такой паре лишь единожды присутствует. такие пары можно набрать жадно. посортируем оба массива, теперь для i возмем самый маленький элемент из b такой что a[i] + b[j] >= x.

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

почему тут ТЛЕ http://codeforces.me/contest/222/submission/2113563 видел похожий код-проходит

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

    Считывание потоками 1500000 чисел, больше не из-за чего.

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

      На самом деле вывод. Вывод полумиллиона чисел с endl. Дело в том, что вывод endl flush-ает поток. Т.е. вместо того, чтобы писать в буфер, а потом выводить буфер, он выводит числа сразу по поступлении.

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

        скорее всего из-за endl. ИМХО, ТЛ в этой задаче не правильно подобран.

        • »
          »
          »
          »
          »
          14 лет назад, скрыть # ^ |
          ← Rev. 2  
          Проголосовать: нравится +7 Проголосовать: не нравится

          На жаве решения проходят с двойным запасом по времени, куда еще больше? Такой халявы не будет на официальных стартах, лучше здесь напороться один раз и на всю жизнь запомнить что 500К flush ни в какие ворота не лезут, чем потом обламаться на NEERC или ещё где. Большой инпут? -читай scanf. Большой вывод? — пиши printf.

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

            Моё решение за линию на яве завалилось на 60-м тесте... видимо двойной запас — это мало, особенно когда узкое место — I/O.

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

            Более того, авторское решение на Java проходит более, чем с трехкратным запасом, работает меньше секунды

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

    Из-за потоков. У меня же такое решение прошло скорей всего из-за другого компилятора.

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

    Чти вот этот ответ и учи STL

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

    У меня тоже самое. Решение на GNU C++ мое и ваше получает AC. Я не знаю почему это происходит, но очень интересно было бы узнать.

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

      Это происходит из-за разных реализаций стандартной библиотеки в MS C++ и GNU C++. Здесь я привёл время работы и некоторые способы ускорения различных методов ввода/вывода для обоих компиляторов.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
if (a >= 'A' && a <= 'Z') a -= 'A' + 26;

So, stupid of me! This cost me E. Wasted too much time on A, so didn't had time to debug :(. Anyway, I feel happy that my approach was correct.

It was a good problem set. Thanks!

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

я, конечно, извиняюсь, но объясните мне, что происходит в 4-ом тесте задачи В

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

I think the problems in this contest is so simple that too many people killed all the problems :(

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

Hi, I have a question on test 8 of Problem D. The test is : 10 5

3 1 1 2 1 3 1 1 2 3

2 1 3 2 1 3 3 3 3 1

If we sort the array we will get: 6 5 5 4 4 4 4 4 2 2 So isn't the worst place is 3 ? But the answer is 5, i don't get this.

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

user editorial for the round please?

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

Can someone please explain the correctness of C problem. Actually I understood the approach, but i am not able to figure out why it will work Thanks.

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

Дважды прибавить/убавить рейт — это сильно)
Хотя, мне все нравится, оставьте так)

upd: Прошу прощения, ошибся темой.

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

прибавили рейтинг 2 раза)) А нельзя ли это так и оставить, мне нравится быть фиолетовым))

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

какойто гробовой контест

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

А это баг, или почему все пишут сюда?