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

Автор Bidhan, 10 лет назад, перевод, По-русски

Доброго дня!

Совсем скоро 2 Мая, 19:30 MSK. стартует Codeforces Round #244 для участников из второго дивизиона. Как все вы знаете, участники из первого дивизиона могут посоревноваться вне конкурса.

Раунд был подготовлен мной (Bidhan), студентом университета Дхака, Бангладеш. Это мой первый раунд на Codeforces, и я старался сделать задачи контеста интересными и решаемыми для участников из второго дивизиона. Очень много усилий было потрачено на то, чтобы условия задач были как можно понятнее. Надеюсь, что раунд пройдет без накладок, а задачи вам понравятся.

Отдельное спасибо msh_shiplu, лектору университета Дхака, за его большой вклад в подготовку раунда (подготовка одной из задач, написание альтернативных решений, разработка тестов). Также спасибо Gerald за помощь в подготовке контеста.

Желаю всем удачи :-)

Распределение баллов по задачам: 500-1000-1500-2000-2500

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

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

(Y)

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

Too early a notification, after a long time.

Thanks :)

Gl Hf all.

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

    There is always at least 2 unrated users in top 10 of div2 only contests... Are they really unrated or they are some of div1 users that they want to compete in the contest?? If I am true that is really unfair!

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

      It was my first contest here, sorry :3

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

        No I didn't mean you :)
        But there is a lot of div1 users that register a new account to participate officialy and/or hack problems...

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

Prediction: Last place will be worse.

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

Finally a Bangladeshi problem setter contest :D hope everyone will enjoy it :)

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

Just thanks)

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

I guess this is the first time a round is prepared by someone from the Indian Sub-Continent. I hope someone from India (including me) will prepare a round soon. India also has good problem setters as seen in codechef contests.

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

At last , a bangladeshi problemsetter , hope , more will arise , of course with div1 problems :) :)

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

Hi! Im new here, and i can't find how to register for this event. On the contests page i see the round and it tells me "Before registration 46:26:28" and nothing else... how do I sign up?

hf all!!

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

Sorry, that' s about Testing Round... Posted to the wrong place...X|

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

мы тоже надеемся, что все будет круто :-)

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

Разбалловка стандартная? Интернационал это круто :D

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

What about score distribution ?

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

good luck for everyone

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

весьма увлекательный контест!

заставил подумать)

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

I'm really stupid, since I've come up with a correct idea on E just 5 minutes before the end...

But C and D are awful. The idea of both is just obvious, but both problems require knowledge of standard algorithms.

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

    So what's the idea behind D?

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

      My solution was trie but don't know is it correct or not or pass within time :(

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

      hashes

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

      I've solved it using a z-function.

      The idea was to find a minimum-length unique substring for each starting position at both s1 and s2. Then we loop over all possible starting positions at s1 and s2, find LCP of the suffixes and choose a minimum-length substring that is not longer than the LCP, but is unique in both s1 and s2.

      If something is still not obvious, just look at my code, it's pretty straightforward.

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

    I agree, problem E was also standard (I saw like 3 problems like this one before (although this one had extra constraints, making it more interesting to solve)). C was all about knowing Kosararaju's/Tarjan's algorithm. D was about hashing the right substrings (poor me getting WA on pretest 10). Seeing this from another perspective, these problems were a good programming exercise.

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

      At D I passed the pretests with a very bad hashing algorithm. Also I passed in O(N^2 log N) , not O(N^2). Although , for me was a great ocasion to test the speed of set and unordered_set as I was participating unoficially.

      E was very nice, but quite known ideed.

      EDIT: At D , there was a solution in O(N^2) without hashes , so + for the authors.

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

      E was not only a variant of a well-known problem, but its solution is quite easy to deduce even when you don't know it beforehand because the additional constraints don't change a thing about the fact, that (one) optimal strategy is still to place the police station to the [n/2]-th criminal's position..

      i think E was easier than C and a lot easier than D

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

    Yeah, same for me with E. In fact, i just debugged it :P (Also, hashing for D passed pretest for me without TLE).

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

    Well, D has really simple (n2) solution, which doesn't use any standard algorithms or hashing: 6529607.

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

Is problem D solvable by hashing?

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

какие-то слишком простые D и E, скорее обе как C

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

Перед концом тура мои взломы сперва отображались как "Неизвестный вердикт", через некоторое время после этого как "Игнорирован", хотя участник, которого я взламывал, не обозначен, как взломанный после конца тура в предварительной таблице комнаты. Что это может означать? Заранее спасибо за ответ.

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

    Вы в этих взломах использовали srand(time(0)), много раз уже говорилось, что так делать нельзя.

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

what about the tutorials?

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

Не, я так не играю! Какой-то dibil1000 ниже меня!-____- Как и обещал, решил С и Д =)

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

    Завтра попробую с C начать решать. А то с Е не всегда получается...

    Так это не шутка была?:)

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

      Ворс никогда не шутит! Или ты не заметил? У меня только бомбит за то, что нашелся человек, который ниже меня. Конкурент!

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

    Решил Д ???

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

What was the intended solution for D? I'm guessing it doesn't involve hashing (because all the mods would time out). Will a trie work here (I guess yes, but I want to know other's opinion)?

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

Every problem has at least 250 people who has "pretests passed". Are all the problems contain weak pretests?

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

    yes, the pretests were weak, i got passed on the pretests of C with a typo, instead of "% 1000000007" for modulo, i wrote "& 1000000007"

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

      Pretests are made to give possibility to hack. So it's absolutely normal, that you passed them with such bug

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

        dont you think not checking the modulo thing would be a little too much of a possibility?

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

как В решать

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

    Можно в лоб написать дерево максимумов, или отдельно выделить все числа которые больше нормы, и брать соседние, теперь между ними найдем кол-во нужных отрезков

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

too slow system testing!

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

System testing too slow.. :(

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

Зачем в С 120+ тестов? Тестирование настолько медленное, что я успею написать виртуально еще один контест, пока рейтинги обновят.

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

I am really confused about problem C 3rd sample, the first 1,2...7 nodes form an SCC and 8,9 and 10 form another. Now if I put a checkpost at 1 and 8 , then I have total cost 1+4 = 5. How the min cost is 15 ?

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

    8, 9, 10 is not SCC. 1..7, 8, 9..10 -> 3 SCC, total = 1 + 4 + 10 = 15.

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

    The flaw in the logic is that 8, 9 and 10 don't actually form a SCC. The subgraph formed by 8-10 has 2 SCCs (8 and 9-10). We deduce that the total cost should be 1 (for the 1-7 SCC) + 4 + 10 = 15, as mentioned in the statement.

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

Very slow system testing

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

Problem B, Div 2 was a bit misleading. When you say contigous segments what do you mean? continous by index or continous by severity level. Took me some time to figure that out . Was it intentional ?

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

В первой задаче 70 тестов. На финальных тестах по первой упало пока что только одно решение. Стоило того.

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

not sure if the system tests are very slow or the time just passes slowly because i'm afraid of my C judge :|

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

Looks like System testing is Slower.....:D

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

What is ''Idleness time limit exeeded''?First time saw this verdict in cf. :/

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

    I guess it means something like "your program spent too much time without using any CPU resources". Did you include some system call like sleep or pause?

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

WoW!! More than 100 tests for each problem!!

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

    I counted 151 on my C submission LOL. And most of them seem to be maximal cases. Is this really necessary? I mean, I know test cases must be exhaustive, but I find these quantities not very... logistic.

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

    All the hacks were added to the testset before system test. That's why number of tests increased.

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

Is there any trie solution passed for D?

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

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

Отличный контест, задачи очень хорошо подобраны)

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

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

When will be the ratings update?It took a lot to evaluate the sources...I hope it won'y take so much for updating the ratings. P.S.Sorry.You updated preety fast.

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

Wow, veeery slooow systest, but very fast rating update.

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

TO WORSE,

I see youre very workless But i gonna pass him next contest HURRAY DIBILS

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

I love this round.I spend a lot of time on problem D,and when I finally solved it ,I felt very happy.By the way,I think the problem E is apparently easier than D.