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

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

Всем привет!

Через несколько часов начнется Codeforces Round #149 для участников Div.2, но традиционно остальные могут поучаствовать вне конкурса. Он был подготовлен небольшой командой авторов: я (NALP), Игорь Кудряшов (Igor_Kudryashov), Павел Холкин (HolkinPV) и Геральд Агапов (Gerald). Кроме того мы выражаем благодарность Марии Беловой (Delinur) и Михаилу Мирзаянову (MikeMirzayanov).

Традиционно всем удачи, полных решений и удачных взломов!

В раунде будет использована стандартная разбалловка: 500-1000-1500-2000-2500

UPD: Соревнование закончилось, всем спасибо!

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

  1. Unkown

  2. ballmaids00

  3. mihaipopa12

  4. Yukari

  5. chlxyd

UPD: опубликован разбор задач на русском языке

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

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

Что-то долго анонса не было)

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

"Через несколько часов..." Один час — не несколько!

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

good luck

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

УРА! анонс появился

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

If someone wish for making successful hacks , He also wishes for another one to be hacked . So you can say : traditionally I wish someone hack you :|

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

I believe what was meant was the Maximalist's points (maximum reachable score) and not sum of scores of individuals.

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

In queue..

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

In problem C, the ri more than defining a row, it defines a column I think, please correct me if I am wrong.

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

Seems like problems C, D & E (div.2) are much harder than other contests unlike A & B which are easier than other contests

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

Есть ли какие-нибудь особенности у дерева отрезков в E?

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

    n ^ 2 * log (n) случайно проходит претесты, ждите TLE.

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

    Придумал решение но не успел написать. Заметим, что все числа мы можем разложить по степеням двойки с показателем не превышающим 20(2^20 > 1e6). Тогда будем хранить в корнях дерева отрезков степени двойки, дающие нужную сумму на отрезке. Таким образом запрос модификации сведется к покраске вершины дерева отрезков в нужный цвет i, где i это разложение X по степеням двойки. Если текущая вершина покрашена и поступил вновь модифицирующий ее запрос, то номер покраски будет номером разложения X1 xor X2(следует из ассоциативности операции xor — (a xor x1) xor 2 = a xor (x1 xor x2) ) по степеням двойки.

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

      да, именно так, только вроде еще надо хранить количество бит каждого типа, чтобы корректно сумму поддерживать

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

      Там просто можно хранить в каждой вершине дерева кол-во каждого бита. Потом если эту вершину надо проксорить с Х, то если у Х на каком-то месте стоит единичка, то кол-во этого бита станет равное общему количеству элементов на этом отрезке минус то количество таких битов, что было раньше.

      Объяснение не очень, в общем вот код.

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

Funny, the pretests for E are so weak, that I've wrote an TLE code intentionally, so I could hack some people on E :)

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

codeforces быстрый, аж жуть: 5*10^9 ксоров заходят за 3сек

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

Жаль не хватило минуты засабмитить С. Вообщем, как всегда:)

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

I have always wondered, what happens on server side during the "Pending system testing" phase? Does anyone know the answer?

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

Maybe out of topic, but how can we undergo a BFS with time complexity O(n) in a tree?

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

At the first sight I thought that D is Union-find Data Structure E is Segment Tree and jumped into coding. Soon I realized that I was coding the wrong solution.

Lesson learnt: Never code without proving correctness and reading the entire statement.

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

Each time we have 2 division contest simultaneously, we have less than 500 coders in 1 div. Now, we have a lot of new coders in first place each time we have only second division. Are they the same with a new user?

top 20 ---> 13 new users. Good Luck in 1 div!!!

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

Well, the part "It is guaranteed that the total length of all given segments doesn't exceed 10^5." in the problem C is SO TRICKY :D

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

How solve problem E ?

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

А как С решается?Напишите пожалуйста

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

    если у нас есть клетка (X,Y) запишем ее как (S=X*10^10+Y) тогда из клетки (X,Y) можно переходит в клетки:

    1)S+10^10; =(X+1,Y);

    2)S+10^10+1;=(X+1,Y+1);

    3)S+10^10-1;=(X+1,Y-1);

    4)S+1; =(X,Y+1);

    5)S-1; =(X,Y-1);

    6)S-10^10; =(X-1,Y);

    7)S-10^10+1;=(X-1,Y+1);

    8)S-10^10-1;=(X-1,Y-1);

    все "хоршие" клетки запишем в MAP затем пустим БФС из клетки S0=X0*10^10+Y0 и посчитаем минимальное количество ходов чтобы прийти в клетку S1=X1*10^10+Y1;

    вот мой код : 2538101

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

      а зачем так сложно? заполняем Map<Pair, Integer>, в котором будем хранить расстояния от стартовой клетки до каждой. далее БФС от стартовой и ответ готов.

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

BFS gets AC in problem C?

I got it!!! If you have a doubt with your algo but you don't have anything else, try your doubt. BFS is the first technique I learnt.

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

I have some problems with the C: I pass with sucess the samples given on the statement on local, but on ideone.com or when I submit here, I have runtime error for the same input. Can someone help me, please? http://mirror.codeforces.com/contest/242/submission/2537756

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

My task B failed because i read 10^6 instead of 10^9 limit :@

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

Блин в С самое главное надо было обратить внимание на "Гарантируется, что суммарная длина всех разрешенных отрезков не превосходит 10^5", для того чтобы спокойно применить bfs по клеткам.

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

I used a stack for bfs, instead of a queue. It's a good lesson to learn : search for trivial mistakes line by line without any assumptions.

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

My submission at contest! 2539880

{ some code }
#define U 4             // I set it to 4 only for test my code
{ some code }

My submission after Contest! 2540107

{some code}
#define U 20            // input values can have up to 20 bits!
{some code} 

I didn't solve it because of a 2 characters sooti [= bug] in my code. what can I name it?

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

My submission for E (i.e. 2537727) produces all zero in CF but it works fine on my machine (g++ on ubuntu with same parameters as CF) and also on ideone (here) can anyone tell me why this happens?

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

Никто не сказал, но задача D, по-моему, отличная задача!

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

Common Rank it.

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

как решать Е ?

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

Is it going to be rated?!! about 3 hours after the contest, it hasn't been rated yet!!

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

Rating update is slow :(

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

Is this contest will rated? I'm waiting... for 3:30 hours...

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

When will the editorial be published? It would be very helpful.

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

Can someone explain why BIT doesn't pass on task E?

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

Any idea how to solve problem D. Dispute ?

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

waiting for the editorials.... :D :D

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

please post editorial.

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

why I got a wrong answer on this submission?2555192

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

Have any English editorial?