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

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

Всем привет!

Совсем скоро, 21 мая в 19:30 MSK, состоится очередной раунд Codeforces #247 для участников Div. 2. Как всегда, участники Div. 1 могут поучаствовать вне конкурса.

Подготовкой задач занимались Кирилл Щетинин(KaiZeR) и Вася Антонюк(Antoniuk). Это наш первый раунд на Codeforces и мы надеемся, что задачи вам понравятся.

Выражаем свою благодарность Gerald и Delinur за помощь в подготовке раунда и MikeMirzayanov за Codeforces и Polygon.

UPD: Распределение баллов по задачам будет таким — 500-1500-1500-2000-2500.

UPD2: Соревнование завершилось, спасибо за участие)

UPD3: Разбор задач.

UPD4: Статистика.

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

1) hzjsxxy
2) azariamuh
3) tonkosi
4) inutard
5) c.u.c.u.m.b.e.r

Всем удачи и высокого рейтинга)

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

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

Ukrainian contests are always special , hope it will be a special one too

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

Надеюсь легенда будет интересной)

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

Antoniuk , your chart is quite interesting after you become yellow you drooped to gray then you backed again to yellow , can you tell what is the reason behind this?

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

Wow!! if Antoniuk was involved that will be definetly awesome.

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

Hope my rating will rise this time :P

Gd luck everyone :)

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

Last contest that Gerald participated was Codeforces Round 104 (Div. 1), Since then, He is preparing contests...

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

i am a little bit worried about the problem statement.

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

Sereja also comes from Ukraine. He is always setting very attractive problemset. :)

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

Good luck to every one!!! Boys.

in Codeforces round 247

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

hzjsxxy Решил Е меньше чем за минуту, хм...

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

    Он просто сдал её через минуту (и через две, кстати). Возможно, он написал её раньше, а сразу после того, как сдал С, нашёл баг в Е и её тоже сдал.

    Ну и ещё есть шанс, что там полная фигня, написанная лишь для того, чтобы пройти претесты.

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

I don't know if it's only me, but the english translations are very bad. I was not able to comprehend problem E at all.

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

Problem D. There is no answer if m = 0 and d = 1

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

I think problem B should be 1000 instead of 1500 !?

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

Again, like other contests, a lot of newly registered participants (within 10 hours of the contest); but the worst of all is that the first person in standing, containing both div 1 and div 2, is one of those!

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

В задаче В для некоторых комбинаций gij должно быть отрицательным! Не все же собеседники доставляют удовольствие :)

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

What is that mythical Test #9 in problem D? I can't pass it =\

It seems that D and E are way harder than normal for these contests. I solved E because I had code for R-B trees handy, which probably wasn't the expected solution.

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

в С настолько маленькие ограничения на n, k. что у некоторых прошло n * n * k * k!

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

Как D решать? Там надо как-то поиграться с тем, что кол-во чисел, у которых K единиц в двоичном коде на интервале [0; n] равно кол-ву таких же чисел на интервале [n + 1; 2 * n] ? Или там что-то интересней?

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

    Рассмотрим массив P(n), i-й элемент которого — количество чисел с i единицами в двоичной записи на промежутке [n+1,2n]. Например, для n=9 P(n) = {1,4,3,1,0,0...}. Во-первых, при переходе от меньшего n к большему элементы массива P(n) не могут уменьшиться. Потому что при увеличении на n на 1 мы выбрасываем из рассматриваемого промежутка число n+1, но добавляем число 2*n+2, у которого такая же двоичная запись плюс нолик справа. Во-вторых, мы прибавляем к этому промежутку еще и число 2*n+1, которое и модифицирует массив P(n). Например для P(10) = {1,4,4,1,0...}, потому что число 19 имеет три единицы в двоичной записи, и оно увеличило третий элемент массива P(9) на 1.

    Получается вот что: все четные числа приходят в рассматриваемый промежуток на смену своим половинам, и только нечетные реально модифицируют массив P(n), причем только один элемент и только на единицу. Поэтому если мы хотим найти число, в промежутке которого m чисел с k единицами в двоичной записи, нам достаточно найти нечетное число которое изменило k-ый элемент массива P(n) с m-1 на m. Иными словами, m-ое нечетное число, в двоичной записи которого k единиц. Если такое число с — ответ на задачу равен (c+1)/2.

    Как именно это сделать, я подробно описывать не буду, потому что у меня какая-то переборная хрень.

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

    Можно так: Научимся отвечать на вопрос: "Сколько чисел с k битами меньше или равны X" (пусть это f(n, k). Тогда для нашего некоторого n — количество чисел с k битами на интервале равно f(2 * n, k) — f(n, k) = Y. Заметим, что с ростом n Y возрастает. Сделаем бинарный поиск. Теперь, как считать f(n, k). Найдем старший бит в n. Пусть его позиция — p. Тогда к ответу прибавим С[p-1][k] (числа с k единицами у которых старший бит меньше p). Поставим одну из единиц на позицию p (вычтем из n эту старшую единицу) и рекурсивно продоржим.

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

What was the approach to solve problem C?

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

This is my first contest :) Hope I will get a high rating :)

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

Why did this solution pass systest?

Interesting part:

REP(i,strlen(s)){
     kq+=a[s[i]-'0'];
}
»
12 лет назад, скрыть # |
Rev. 3  
Проголосовать: нравится +15 Проголосовать: не нравится

Ссылка на скриншот

Мне кажется, или таких надо банить?

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

Какая сложность авторского решения в Е, и какие решения предполагались с учетом тл в 4 секунды?

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

    Бинарный поиск + фенвик работает быстрее всех авторских решений укладывается примерно в 0.7-0.8 секунды. Сложность O(Qlog2(N)) кажется. Правда там еще сжатие координат было... Постараюсь побыстрее дописать в разборе.

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

Any ideas on how to solve B for a much bigger N? First time i read the problem i thought n <= 10^5

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

Same solution for problem D got AC in MS C++ and WA in GNU C++.

6676019

6676015

Why? :(

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

    As for your code, the behavior of X >> i is undefined when i = 64, for the behavior of op1 << op2 and op1 >> op2 is undefined if the op2 is negative, or greater than or equal to the length in bits of the op1. So, you can get AC in both MS C++ and GNU C++ by replacing X >> i with i < 64 ? X >> i : 0 for example.

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

Problem C should tell that the number must be positive or something like that. For example 17 mod 5 = 2 = -3. When you say print 17 module 5 I can print -3 too unless you specified that the answer must be positive. After 1:24 I got hacked and immediately submit another. which is now accepted but I lost a lot of point -50 and ~ -450 or -500 for timing.

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

Wasn't problem A too easy to become a contest problem?!

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

Nice problems.... :)

Nice contest for me... :)

Hope to see you again... :)

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

Can someone please explain the statement of problem E ?

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

    The subproblem can be formulated as this: You have an area of land, with h[i] being the height of the i-th section. You want to pour V liters of "rain" on this land (so that the water level is the same for each section that isn't dry). Find the resulting water level.

    Now you have the initial heights, and a bunch of queries that either change the height of one section, or ask you to solve the subproblem for a given V.

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

When will the editorial be available??

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

Is there a way to download the test cases, other than trying to "brute force" it by sending fake solutions? My solution to E fails on one single query on test #28, and all other queries are correct. Very suspicious...

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

why most of the times div2 winners are unrated users, even in recent topcoder contest same thing happend..!!!

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

Can anybody explain me why this solution gets WA 6676798 I simply solved the problem using DP without considering the condition d (the result will contain those paths that doesn't have any edge with weight d or higher ). After that i did the same thing with d-1 as k. (using edges with weight d-1 or lower ). And my answer is (first result) — (second result) . . . sorry for my bad English.

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

can someone explain me why this solution gets WA :6676798 my answer is : (all the paths using edges with weight k or lower) — ( all the paths using edges d-1 or lower)

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

I like div-2-only contest because I have to compete with the second (or nth) account of the first-division people. No, it is a joke, lol. I don't like div-2-only because that.

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

Хм, и часто так бывает, чтобы из первой пятерки участников трое зарегистрировались за несколько часов до контеста?